added another madvise and wrapped them in #ifdef's so they don't break systems withou...
authorErik Walthinsen <omega@temple-baptist.org>
Wed, 17 Oct 2001 20:57:53 +0000 (20:57 +0000)
committerErik Walthinsen <omega@temple-baptist.org>
Wed, 17 Oct 2001 20:57:53 +0000 (20:57 +0000)
Original commit message from CVS:
added another madvise and wrapped them in #ifdef's so they don't break systems without MADV_*

gst/elements/gstfilesrc.c
plugins/elements/gstfilesrc.c

index f53548f..8873086 100644 (file)
@@ -360,6 +360,10 @@ gst_filesrc_free_parent_mmap (GstBuffer *buf)
   }
   g_mutex_unlock(src->map_regions_lock);
 
+#ifdef MADV_DONTNEED
+  // madvise to tell the kernel what to do with it
+  madvise(GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buf),MADV_DONTNEED);
+#endif
   // now unmap the memory
   munmap(GST_BUFFER_DATA(buf),GST_BUFFER_MAXSIZE(buf));
 }
@@ -384,8 +388,10 @@ gst_filesrc_map_region (GstFileSrc *src, off_t offset, size_t size)
     g_error ("gstfilesrc mmap(0x%x, %d, 0x%llx) : %s",
             size, src->fd, offset, sys_errlist[errno]);
   }
+#ifdef MADV_SEQUENTIAL
   // madvise to tell the kernel what to do with it
   retval = madvise(GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buf),MADV_SEQUENTIAL);
+#endif
   // fill in the rest of the fields
   GST_BUFFER_FLAGS(buf) = GST_BUFFER_READONLY | GST_BUFFER_ORIGINAL;
   GST_BUFFER_SIZE(buf) = size;
index f53548f..8873086 100644 (file)
@@ -360,6 +360,10 @@ gst_filesrc_free_parent_mmap (GstBuffer *buf)
   }
   g_mutex_unlock(src->map_regions_lock);
 
+#ifdef MADV_DONTNEED
+  // madvise to tell the kernel what to do with it
+  madvise(GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buf),MADV_DONTNEED);
+#endif
   // now unmap the memory
   munmap(GST_BUFFER_DATA(buf),GST_BUFFER_MAXSIZE(buf));
 }
@@ -384,8 +388,10 @@ gst_filesrc_map_region (GstFileSrc *src, off_t offset, size_t size)
     g_error ("gstfilesrc mmap(0x%x, %d, 0x%llx) : %s",
             size, src->fd, offset, sys_errlist[errno]);
   }
+#ifdef MADV_SEQUENTIAL
   // madvise to tell the kernel what to do with it
   retval = madvise(GST_BUFFER_DATA(buf),GST_BUFFER_SIZE(buf),MADV_SEQUENTIAL);
+#endif
   // fill in the rest of the fields
   GST_BUFFER_FLAGS(buf) = GST_BUFFER_READONLY | GST_BUFFER_ORIGINAL;
   GST_BUFFER_SIZE(buf) = size;