mirror of /home/gitosis/repositories/libev.git
I ❤ µ-opts
This commit is contained in:
parent
4e834d890e
commit
5c9aabea3d
16
ev.3
16
ev.3
|
@ -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 (;;)
|
||||
\& {
|
||||
|
|
12
ev.c
12
ev.c
|
@ -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 ();
|
||||
}
|
||||
|
||||
|
|
4
ev.h
4
ev.h
|
@ -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
|
||||
|
|
16
ev.html
16
ev.html
|
@ -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 (;;)
|
||||
{
|
||||
|
|
14
ev.pod
14
ev.pod
|
@ -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 (;;)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue