Add some logging to track potential write halt
-: a tiny bit of performance hit
+: let us track the SD card write halt issue
low-risk change
diff --git a/oscl/oscl/osclio/src/oscl_file_native.cpp b/oscl/oscl/osclio/src/oscl_file_native.cpp
index 368b475..d3df6f5 100644
--- a/oscl/oscl/osclio/src/oscl_file_native.cpp
+++ b/oscl/oscl/osclio/src/oscl_file_native.cpp
@@ -33,6 +33,10 @@
 #include "oscl_file_types.h"
 #include "oscl_file_handle.h"
 
+// FIXME:
+// Is 100 milliseconds a good choice for writing out a single
+// compressed video frame?
+static const int FILE_WRITER_SPEED_TOLERANCE_IN_MILLISECONDS = 100;
 
 OsclNativeFile::OsclNativeFile()
 {
@@ -325,7 +329,15 @@
 #endif
     if (iFile)
     {
-        return fwrite(buffer, OSCL_STATIC_CAST(int32, size), OSCL_STATIC_CAST(int32, numelements), iFile);
+        struct timeval startTimeVal, endTimeVal;
+        gettimeofday(&startTimeVal, NULL);
+        uint32 items = fwrite(buffer, OSCL_STATIC_CAST(int32, size), OSCL_STATIC_CAST(int32, numelements), iFile);
+        gettimeofday(&endTimeVal, NULL);
+        long long timeInMicroSeconds = (endTimeVal.tv_sec - startTimeVal.tv_sec) * 1000000LL + (endTimeVal.tv_usec - startTimeVal.tv_usec);
+        if (timeInMicroSeconds/1000 > FILE_WRITER_SPEED_TOLERANCE_IN_MILLISECONDS) {
+            LOGW("writing %d bytes takes too long (%lld micro seconds)", items, timeInMicroSeconds);
+        }
+        return items;
     }
     return 0;
 }