#include <stdbool.h>
#include <string.h>
-size_t fread( void * _PDCLIB_restrict ptr, size_t size, size_t nmemb, struct _PDCLIB_file_t * _PDCLIB_restrict stream )
+size_t fread_unlocked( void * _PDCLIB_restrict ptr,
+ size_t size, size_t nmemb,
+ struct _PDCLIB_file_t * _PDCLIB_restrict stream )
{
if ( _PDCLIB_prepread( stream ) == EOF )
{
return nmemb_i;
}
+size_t fread( void * _PDCLIB_restrict ptr,
+ size_t size, size_t nmemb,
+ struct _PDCLIB_file_t * _PDCLIB_restrict stream )
+{
+ flockfile( stream );
+ size_t r = fread_unlocked( ptr, size, nmemb, stream );
+ funlockfile( stream );
+ return r;
+}
+
#endif
#ifdef TEST