diff options
| -rw-r--r-- | ev.3 | 16 | ||||
| -rw-r--r-- | ev.c | 12 | ||||
| -rw-r--r-- | ev.h | 4 | ||||
| -rw-r--r-- | ev.html | 16 | ||||
| -rw-r--r-- | ev.pod | 14 | 
5 files changed, 32 insertions, 30 deletions
| @@ -242,13 +242,13 @@ might be supported on the current system, you would need to look at  recommended ones.  .Sp  See the description of \f(CW\*(C`ev_embed\*(C'\fR watchers for more info. -.IP "ev_set_allocator (void *(*cb)(void *ptr, long size))" 4 -.IX Item "ev_set_allocator (void *(*cb)(void *ptr, long size))" -Sets the allocation function to use (the prototype is similar to the -realloc C function, the semantics are identical). It is used to allocate -and free memory (no surprises here). If it returns zero when memory -needs to be allocated, the library might abort or take some potentially -destructive action. The default is your system realloc function. +.IP "ev_set_allocator (void *(*cb)(void *ptr, size_t size))" 4 +.IX Item "ev_set_allocator (void *(*cb)(void *ptr, size_t size))" +Sets the allocation function to use (the prototype and semantics are +identical to the realloc C function). It is used to allocate and free +memory (no surprises here). If it returns zero when memory needs to be +allocated, the library might abort or take some potentially destructive +action. The default is your system realloc function.  .Sp  You could override this function in high-availability programs to, say,  free some memory if it cannot allocate memory, to use a special allocator, @@ -259,7 +259,7 @@ retries: better than mine).  .Sp  .Vb 6  \&   static void * -\&   persistent_realloc (void *ptr, long size) +\&   persistent_realloc (void *ptr, size_t size)  \&   {  \&     for (;;)  \&       { @@ -255,22 +255,22 @@ syserr (const char *msg)      }  } -static void *(*alloc)(void *ptr, long size); +static void *(*alloc)(void *ptr, size_t size) = realloc;  void -ev_set_allocator (void *(*cb)(void *ptr, long size)) +ev_set_allocator (void *(*cb)(void *ptr, size_t size))  {    alloc = cb;  } -static void * -ev_realloc (void *ptr, long size) +inline_speed void * +ev_realloc (void *ptr, size_t size)  { -  ptr = alloc ? alloc (ptr, size) : realloc (ptr, size); +  ptr = alloc (ptr, size);    if (!ptr && size)      { -      fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", size); +      fprintf (stderr, "libev: cannot allocate %ld bytes, aborting.", (long)size);        abort ();      } @@ -66,6 +66,8 @@ typedef double ev_tstamp;  /*****************************************************************************/ +#include <stddef.h> /* for size_t */ +  #if EV_STAT_ENABLE  # include <sys/stat.h>  #endif @@ -334,7 +336,7 @@ ev_tstamp ev_time (void);   * or take some potentially destructive action.   * The default is your system realloc function.   */ -void ev_set_allocator (void *(*cb)(void *ptr, long size)); +void ev_set_allocator (void *(*cb)(void *ptr, size_t size));  /* set the callback function to call on a   * retryable syscall error @@ -6,7 +6,7 @@  	<meta name="description" content="Pod documentation for libev" />  	<meta name="inputfile" content="<standard input>" />  	<meta name="outputfile" content="<standard output>" /> -	<meta name="created" content="Tue Nov 27 20:23:27 2007" /> +	<meta name="created" content="Tue Nov 27 20:38:24 2007" />  	<meta name="generator" content="Pod::Xhtml 1.57" />  <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head>  <body> @@ -181,20 +181,20 @@ might be supported on the current system, you would need to look at  recommended ones.</p>  		<p>See the description of <code>ev_embed</code> watchers for more info.</p>  	</dd> -	<dt>ev_set_allocator (void *(*cb)(void *ptr, long size))</dt> +	<dt>ev_set_allocator (void *(*cb)(void *ptr, size_t size))</dt>  	<dd> -		<p>Sets the allocation function to use (the prototype is similar to the -realloc C function, the semantics are identical). It is used to allocate -and free memory (no surprises here). If it returns zero when memory -needs to be allocated, the library might abort or take some potentially -destructive action. The default is your system realloc function.</p> +		<p>Sets the allocation function to use (the prototype and semantics are +identical to the realloc C function). It is used to allocate and free +memory (no surprises here). If it returns zero when memory needs to be +allocated, the library might abort or take some potentially destructive +action. The default is your system realloc function.</p>  		<p>You could override this function in high-availability programs to, say,  free some memory if it cannot allocate memory, to use a special allocator,  or even to sleep a while and retry until some memory is available.</p>  		<p>Example: replace the libev allocator with one that waits a bit and then  retries: better than mine).</p>  <pre>   static void * -   persistent_realloc (void *ptr, long size) +   persistent_realloc (void *ptr, size_t size)     {       for (;;)         { @@ -117,13 +117,13 @@ recommended ones.  See the description of C<ev_embed> watchers for more info. -=item ev_set_allocator (void *(*cb)(void *ptr, long size)) +=item ev_set_allocator (void *(*cb)(void *ptr, size_t size)) -Sets the allocation function to use (the prototype is similar to the -realloc C function, the semantics are identical). It is used to allocate -and free memory (no surprises here). If it returns zero when memory -needs to be allocated, the library might abort or take some potentially -destructive action. The default is your system realloc function. +Sets the allocation function to use (the prototype and semantics are +identical to the realloc C function). It is used to allocate and free +memory (no surprises here). If it returns zero when memory needs to be +allocated, the library might abort or take some potentially destructive +action. The default is your system realloc function.  You could override this function in high-availability programs to, say,  free some memory if it cannot allocate memory, to use a special allocator, @@ -133,7 +133,7 @@ Example: replace the libev allocator with one that waits a bit and then  retries: better than mine).     static void * -   persistent_realloc (void *ptr, long size) +   persistent_realloc (void *ptr, size_t size)     {       for (;;)         { | 
