Import boehm-gc snapshot, taken from
[official-gcc.git] / boehm-gc / include / javaxfc.h
blob99eaf9ad8716daefcaf705e8115a97eab0c41e95
1 /*
2 * Copyright (c) 1994 by Xerox Corporation. All rights reserved.
3 * Copyright (c) 1996 by Silicon Graphics. All rights reserved.
4 * Copyright (c) 1998 by Fergus Henderson. All rights reserved.
5 * Copyright (c) 2000-2009 by Hewlett-Packard Development Company.
6 * All rights reserved.
8 * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
9 * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
11 * Permission is hereby granted to use or copy this program
12 * for any purpose, provided the above notices are retained on all copies.
13 * Permission to modify the code and to distribute modified code is granted,
14 * provided the above notices are retained, and a notice that the code was
15 * modified is included with the above copyright notice.
18 #ifndef GC_H
19 # include "gc.h"
20 #endif
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
27 * Invoke all remaining finalizers that haven't yet been run. (Since the
28 * notifier is not called, this should be called from a separate thread.)
29 * This function is needed for strict compliance with the Java standard,
30 * which can make the runtime guarantee that all finalizers are run.
31 * This is problematic for several reasons:
32 * 1) It means that finalizers, and all methods called by them,
33 * must be prepared to deal with objects that have been finalized in
34 * spite of the fact that they are still referenced by statically
35 * allocated pointer variables.
36 * 1) It may mean that we get stuck in an infinite loop running
37 * finalizers which create new finalizable objects, though that's
38 * probably unlikely.
39 * Thus this is not recommended for general use.
41 GC_API void GC_CALL GC_finalize_all(void);
43 #ifdef __cplusplus
44 } /* end of extern "C" */
45 #endif