Loading...
stdlib/FreeBSD/atexit.3.patch Libc-498 Libc-763.12
--- Libc/Libc-498/stdlib/FreeBSD/atexit.3.patch
+++ Libc/Libc-763.12/stdlib/FreeBSD/atexit.3.patch
@@ -1,11 +1,27 @@
---- _SB/Libc/stdlib/FreeBSD/atexit.3	2003-05-20 15:23:24.000000000 -0700
-+++ _SB/Libc/stdlib/FreeBSD/atexit.3.edit	2006-06-28 16:55:52.000000000 -0700
-@@ -47,13 +47,13 @@
+--- atexit.3.bsdnew	2009-11-13 14:11:47.000000000 -0800
++++ atexit.3	2009-11-13 14:11:47.000000000 -0800
+@@ -32,46 +32,69 @@
+ .\"     @(#)atexit.3	8.1 (Berkeley) 6/4/93
+ .\" $FreeBSD: src/lib/libc/stdlib/atexit.3,v 1.11 2007/01/09 00:28:09 imp Exp $
+ .\"
+-.Dd September 6, 2002
++.Dd May 20, 2008
+ .Dt ATEXIT 3
+ .Os
+ .Sh NAME
+ .Nm atexit
+ .Nd register a function to be called on exit
+-.Sh LIBRARY
+-.Lb libc
  .Sh SYNOPSIS
  .In stdlib.h
  .Ft int
 -.Fn atexit "void (*function)(void)"
 +.Fn atexit "void (*func)(void)"
++#ifdef UNIFDEF_BLOCKS
++.Ft int
++.Fn atexit_b "void (^block)(void)"
++#endif
  .Sh DESCRIPTION
  The
  .Fn atexit
@@ -17,14 +33,51 @@
  to be called at program exit, whether via
  .Xr exit 3
  or via return from the program's
-@@ -71,8 +71,8 @@
+ .Fn main .
+ Functions so registered are called in reverse order;
+ no arguments are passed.
++#ifdef UNIFDEF_BLOCKS
++.Pp
++The
++.Fn atexit_b
++function is like
++.Fn atexit
++except the callback is a block pointer instead of a function pointer.
++.Bd -ragged -offset indent
++Note: The
++.Fn Block_copy
++function (defined in
++.In Blocks.h )
++is used by
++.Fn atexit_b
++to make a copy of the block, especially for the case when a stack-based
++block might go out of scope when the subroutine returns.
++.Ed
++#endif
+ .Pp
+-These functions must not call
++These callbacks must not call
+ .Fn exit ;
+ if it should be necessary to terminate the process while in such a
+ function, the
+ .Xr _exit 2
+ function should be used.
+-(Alternatively, the function may cause abnormal
++(Alternatively, the callbacks may cause abnormal
  process termination, for example by calling
  .Xr abort 3 . )
  .Pp
 -At least 32 functions can always be registered,
 -and more are allowed as long as sufficient memory can be allocated.
-+At least 32 functions can always be registered;
++At least 32 callbacks can always be registered;
 +more are allowed as long as sufficient memory can be allocated.
  .\" XXX {ATEXIT_MAX} is not implemented yet
  .Sh RETURN VALUES
- .Rv -std atexit
+-.Rv -std atexit
++#ifdef UNIFDEF_BLOCKS
++.ds ATEXIT_B atexit_b
++#endif
++.Rv -std atexit \*[ATEXIT_B]
+ .Sh ERRORS
+ .Bl -tag -width Er
+ .It Bq Er ENOMEM