--- libev/ev.html 2007/11/27 19:23:31 1.51 +++ libev/ev.html 2007/11/27 19:41:52 1.52 @@ -6,7 +6,7 @@ - + @@ -181,20 +181,20 @@ recommended ones.

See the description of ev_embed watchers for more info.

-
ev_set_allocator (void *(*cb)(void *ptr, long size))
+
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, or even to sleep a while and retry until some memory is available.

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 (;;)
        {