From 40ea26d7fa3e9214a7da4bb1280515948e1a1568 Mon Sep 17 00:00:00 2001
From: root
Date: Tue, 27 Nov 2007 19:41:52 +0000
Subject: [PATCH] =?utf8?q?I=20=E2=9D=A4=20=C2=B5-opts?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
---
ev.3 | 16 ++++++++--------
ev.c | 12 ++++++------
ev.h | 4 +++-
ev.html | 16 ++++++++--------
ev.pod | 14 +++++++-------
5 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/ev.3 b/ev.3
index d718a09..757d850 100644
--- a/ev.3
+++ b/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 (;;)
\& {
diff --git a/ev.c b/ev.c
index 8911cb8..4452952 100644
--- a/ev.c
+++ b/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 ();
}
diff --git a/ev.h b/ev.h
index 26ffe78..db79520 100644
--- a/ev.h
+++ b/ev.h
@@ -66,6 +66,8 @@ typedef double ev_tstamp;
/*****************************************************************************/
+#include /* for size_t */
+
#if EV_STAT_ENABLE
# include
#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
diff --git a/ev.html b/ev.html
index 5bcffd0..bd93853 100644
--- a/ev.html
+++ b/ev.html
@@ -6,7 +6,7 @@
-
+
@@ -181,20 +181,20 @@ might be supported on the current system, you would need to look at
recommended ones.
See the description of ev_embed watchers for more info.
-
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.
+
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 (;;)
{
diff --git a/ev.pod b/ev.pod
index 5b0835d..dceb010 100644
--- a/ev.pod
+++ b/ev.pod
@@ -117,13 +117,13 @@ recommended ones.
See the description of C 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 (;;)
{
--
2.43.0