Select Git revision
Thread.pmod
-
Martin Nilsson authored
Rev: lib/0.6/modules/Array.pmod:1.3 Rev: lib/0.6/modules/Regexp.pike:1.3 Rev: lib/7.0/modules/Stack.pmod:1.2 Rev: lib/7.0/modules/Stdio.pmod/module.pmod:1.2 Rev: lib/7.2/modules/Gmp.pmod:1.2 Rev: lib/7.2/modules/LR.pmod/rule.pike:1.3 Rev: lib/7.4/modules/SSL.pmod/constants.pike:1.2 Rev: lib/7.4/modules/_Crypto.pmod:1.2 Rev: lib/7.6/modules/Debug.pmod/module.pmod:1.2 Rev: lib/modules/Audio.pmod/Codec.pmod:1.12 Rev: lib/modules/Audio.pmod/Format.pmod/MP3.pike:1.5 Rev: lib/modules/Cache.pmod/Policy.pmod/Base.pike:1.7 Rev: lib/modules/Cache.pmod/Storage.pmod/Memory.pike:1.7 Rev: lib/modules/Calendar.pmod/Calendar.pike:1.8 Rev: lib/modules/Calendar.pmod/Events.pmod:1.19 Rev: lib/modules/Calendar.pmod/Language.pmod:1.26 Rev: lib/modules/Calendar.pmod/TZnames.pmod:1.17 Rev: lib/modules/Calendar.pmod/YMD.pike:1.34 Rev: lib/modules/Calendar.pmod/module.pmod:1.17 Rev: lib/modules/Calendar_I.pmod/ISO.pmod:1.13 Rev: lib/modules/Crypto.pmod/DSA.pike:1.9 Rev: lib/modules/Crypto.pmod/HMAC.pike:1.6 Rev: lib/modules/Crypto.pmod/PGP.pmod:1.15 Rev: lib/modules/Crypto.pmod/Pipe.pike:1.10 Rev: lib/modules/Crypto.pmod/RSA.pike:1.12 Rev: lib/modules/Crypto.pmod/Random.pmod:1.20 Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.31 Rev: lib/modules/GLU.pmod:1.17 Rev: lib/modules/GLUE.pmod/Driver.pmod/GTK.pike:1.7 Rev: lib/modules/GLUE.pmod/Driver.pmod/Interface.pike:1.4 Rev: lib/modules/GLUE.pmod/Driver.pmod/SDL.pike:1.7 Rev: lib/modules/GLUE.pmod/module.pmod:1.16 Rev: lib/modules/GTKSupport.pmod/Util.pmod:1.12 Rev: lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike:1.13 Rev: lib/modules/Graphics.pmod/Graph.pmod/module.pmod:1.10 Rev: lib/modules/Locale.pmod/Charset.pmod/Tables.pmod/iso88591.pmod:1.4 Rev: lib/modules/Multiset.pmod:1.3 Rev: lib/modules/Parser.pmod/XML.pmod/Validating.pike:1.15 Rev: lib/modules/Pike.pmod/module.pmod:1.20 Rev: lib/modules/Process.pmod:1.55 Rev: lib/modules/Program.pmod:1.6 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Peer.pike:1.22 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Port.pike:1.8 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Torrent.pike:1.37 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/module.pmod:1.5 Rev: lib/modules/Protocols.pmod/DNS_SD.pmod:1.3 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Chained.pike:1.3 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/SSLPort.pike:1.15 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/module.pmod:1.14 Rev: lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod:1.93 Rev: lib/modules/Protocols.pmod/IMAP.pmod/types.pmod:1.31 Rev: lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod:1.7 Rev: lib/modules/Protocols.pmod/IRC.pmod/module.pmod:1.5 Rev: lib/modules/Protocols.pmod/LDAP.pmod/client.pike:1.114 Rev: lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod:1.16 Rev: lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike:1.22 Rev: lib/modules/Protocols.pmod/LPD.pmod:1.11 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod:1.12 Rev: lib/modules/Protocols.pmod/SNMP.pmod/module.pmod:1.4 Rev: lib/modules/Protocols.pmod/TELNET.pmod:1.29 Rev: lib/modules/Protocols.pmod/X.pmod/KeySyms.pmod:1.4 Rev: lib/modules/Protocols.pmod/X.pmod/XImage.pmod:1.23 Rev: lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod:1.19 Rev: lib/modules/SSL.pmod/Cipher.pmod:1.17 Rev: lib/modules/SSL.pmod/Constants.pmod:1.3 Rev: lib/modules/SSL.pmod/alert.pike:1.12 Rev: lib/modules/SSL.pmod/connection.pike:1.43 Rev: lib/modules/SSL.pmod/context.pike:1.38 Rev: lib/modules/SSL.pmod/packet.pike:1.17 Rev: lib/modules/SSL.pmod/session.pike:1.38 Rev: lib/modules/SSL.pmod/sslfile.pike:1.111 Rev: lib/modules/Sql.pmod/mysql.pike:1.42 Rev: lib/modules/Sql.pmod/mysql_result.pike:1.7 Rev: lib/modules/Sql.pmod/postgres.pike:1.29 Rev: lib/modules/Sql.pmod/sql_util.pmod:1.22 Rev: lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod:1.25 Rev: lib/modules/Standards.pmod/ASN1.pmod/Types.pmod:1.46 Rev: lib/modules/Standards.pmod/CIFF.pmod/File.pike:1.4 Rev: lib/modules/Standards.pmod/FIPS10_4.pmod:1.5 Rev: lib/modules/Standards.pmod/IIM.pmod:1.9 Rev: lib/modules/Standards.pmod/URI.pike:1.29 Rev: lib/modules/Standards.pmod/UUID.pmod:1.18 Rev: lib/modules/Standards.pmod/XML.pmod/Wix.pmod:1.28 Rev: lib/modules/Thread.pmod:1.46 Rev: lib/modules/Tools.pmod/Shoot.pmod/GC.pike:1.3 Rev: lib/modules/Tools.pmod/Standalone.pmod/pmar_install.pike:1.9 Rev: lib/modules/Web.pmod/RSS.pmod:1.8 Rev: lib/modules/_Image_XCF.pmod:1.26 Rev: lib/modules/__builtin_dirnode.pmod:1.3
Martin Nilsson authoredRev: lib/0.6/modules/Array.pmod:1.3 Rev: lib/0.6/modules/Regexp.pike:1.3 Rev: lib/7.0/modules/Stack.pmod:1.2 Rev: lib/7.0/modules/Stdio.pmod/module.pmod:1.2 Rev: lib/7.2/modules/Gmp.pmod:1.2 Rev: lib/7.2/modules/LR.pmod/rule.pike:1.3 Rev: lib/7.4/modules/SSL.pmod/constants.pike:1.2 Rev: lib/7.4/modules/_Crypto.pmod:1.2 Rev: lib/7.6/modules/Debug.pmod/module.pmod:1.2 Rev: lib/modules/Audio.pmod/Codec.pmod:1.12 Rev: lib/modules/Audio.pmod/Format.pmod/MP3.pike:1.5 Rev: lib/modules/Cache.pmod/Policy.pmod/Base.pike:1.7 Rev: lib/modules/Cache.pmod/Storage.pmod/Memory.pike:1.7 Rev: lib/modules/Calendar.pmod/Calendar.pike:1.8 Rev: lib/modules/Calendar.pmod/Events.pmod:1.19 Rev: lib/modules/Calendar.pmod/Language.pmod:1.26 Rev: lib/modules/Calendar.pmod/TZnames.pmod:1.17 Rev: lib/modules/Calendar.pmod/YMD.pike:1.34 Rev: lib/modules/Calendar.pmod/module.pmod:1.17 Rev: lib/modules/Calendar_I.pmod/ISO.pmod:1.13 Rev: lib/modules/Crypto.pmod/DSA.pike:1.9 Rev: lib/modules/Crypto.pmod/HMAC.pike:1.6 Rev: lib/modules/Crypto.pmod/PGP.pmod:1.15 Rev: lib/modules/Crypto.pmod/Pipe.pike:1.10 Rev: lib/modules/Crypto.pmod/RSA.pike:1.12 Rev: lib/modules/Crypto.pmod/Random.pmod:1.20 Rev: lib/modules/Filesystem.pmod/Tar.pmod:1.31 Rev: lib/modules/GLU.pmod:1.17 Rev: lib/modules/GLUE.pmod/Driver.pmod/GTK.pike:1.7 Rev: lib/modules/GLUE.pmod/Driver.pmod/Interface.pike:1.4 Rev: lib/modules/GLUE.pmod/Driver.pmod/SDL.pike:1.7 Rev: lib/modules/GLUE.pmod/module.pmod:1.16 Rev: lib/modules/GTKSupport.pmod/Util.pmod:1.12 Rev: lib/modules/Graphics.pmod/Graph.pmod/create_bars.pike:1.13 Rev: lib/modules/Graphics.pmod/Graph.pmod/module.pmod:1.10 Rev: lib/modules/Locale.pmod/Charset.pmod/Tables.pmod/iso88591.pmod:1.4 Rev: lib/modules/Multiset.pmod:1.3 Rev: lib/modules/Parser.pmod/XML.pmod/Validating.pike:1.15 Rev: lib/modules/Pike.pmod/module.pmod:1.20 Rev: lib/modules/Process.pmod:1.55 Rev: lib/modules/Program.pmod:1.6 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Peer.pike:1.22 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Port.pike:1.8 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/Torrent.pike:1.37 Rev: lib/modules/Protocols.pmod/Bittorrent.pmod/module.pmod:1.5 Rev: lib/modules/Protocols.pmod/DNS_SD.pmod:1.3 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/Chained.pike:1.3 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/SSLPort.pike:1.15 Rev: lib/modules/Protocols.pmod/HTTP.pmod/Server.pmod/module.pmod:1.14 Rev: lib/modules/Protocols.pmod/IMAP.pmod/requests.pmod:1.93 Rev: lib/modules/Protocols.pmod/IMAP.pmod/types.pmod:1.31 Rev: lib/modules/Protocols.pmod/IRC.pmod/Requests.pmod:1.7 Rev: lib/modules/Protocols.pmod/IRC.pmod/module.pmod:1.5 Rev: lib/modules/Protocols.pmod/LDAP.pmod/client.pike:1.114 Rev: lib/modules/Protocols.pmod/LDAP.pmod/ldap_privates.pmod:1.16 Rev: lib/modules/Protocols.pmod/LDAP.pmod/protocol.pike:1.22 Rev: lib/modules/Protocols.pmod/LPD.pmod:1.11 Rev: lib/modules/Protocols.pmod/LysKOM.pmod/Request.pmod:1.12 Rev: lib/modules/Protocols.pmod/SNMP.pmod/module.pmod:1.4 Rev: lib/modules/Protocols.pmod/TELNET.pmod:1.29 Rev: lib/modules/Protocols.pmod/X.pmod/KeySyms.pmod:1.4 Rev: lib/modules/Protocols.pmod/X.pmod/XImage.pmod:1.23 Rev: lib/modules/Protocols.pmod/X.pmod/_Xlib.pmod:1.19 Rev: lib/modules/SSL.pmod/Cipher.pmod:1.17 Rev: lib/modules/SSL.pmod/Constants.pmod:1.3 Rev: lib/modules/SSL.pmod/alert.pike:1.12 Rev: lib/modules/SSL.pmod/connection.pike:1.43 Rev: lib/modules/SSL.pmod/context.pike:1.38 Rev: lib/modules/SSL.pmod/packet.pike:1.17 Rev: lib/modules/SSL.pmod/session.pike:1.38 Rev: lib/modules/SSL.pmod/sslfile.pike:1.111 Rev: lib/modules/Sql.pmod/mysql.pike:1.42 Rev: lib/modules/Sql.pmod/mysql_result.pike:1.7 Rev: lib/modules/Sql.pmod/postgres.pike:1.29 Rev: lib/modules/Sql.pmod/sql_util.pmod:1.22 Rev: lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod:1.25 Rev: lib/modules/Standards.pmod/ASN1.pmod/Types.pmod:1.46 Rev: lib/modules/Standards.pmod/CIFF.pmod/File.pike:1.4 Rev: lib/modules/Standards.pmod/FIPS10_4.pmod:1.5 Rev: lib/modules/Standards.pmod/IIM.pmod:1.9 Rev: lib/modules/Standards.pmod/URI.pike:1.29 Rev: lib/modules/Standards.pmod/UUID.pmod:1.18 Rev: lib/modules/Standards.pmod/XML.pmod/Wix.pmod:1.28 Rev: lib/modules/Thread.pmod:1.46 Rev: lib/modules/Tools.pmod/Shoot.pmod/GC.pike:1.3 Rev: lib/modules/Tools.pmod/Standalone.pmod/pmar_install.pike:1.9 Rev: lib/modules/Web.pmod/RSS.pmod:1.8 Rev: lib/modules/_Image_XCF.pmod:1.26 Rev: lib/modules/__builtin_dirnode.pmod:1.3
block_alloc_h.h 2.50 KiB
/*
|| This file is part of Pike. For copyright information see COPYRIGHT.
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING
|| for more information.
|| $Id: block_alloc_h.h,v 1.25 2008/05/01 21:44:32 mast Exp $
*/
#undef BLOCK_ALLOC
#undef PTR_HASH_ALLOC
#undef PTR_HASH_ALLOC_FIXED
#undef BLOCK_ALLOC_FILL_PAGES
#undef PTR_HASH_ALLOC_FILL_PAGES
#undef PTR_HASH_ALLOC_FIXED_FILL_PAGES
#ifndef PIKE_HASH_T
#define PIKE_HASH_T size_t
#endif /* !PIKE_HASH_T */
#ifdef BLOCK_ALLOC_USED
#error "block_alloc.h must be included after all uses of block_alloc_h.h"
#endif /* BLOCK_ALLOC_USED */
#define BLOCK_ALLOC(DATA,SIZE) \
struct DATA *PIKE_CONCAT(alloc_,DATA)(void); \
void PIKE_CONCAT3(new_,DATA,_context)(void); \
void PIKE_CONCAT3(really_free_,DATA,_unlocked)(struct DATA *d); \
void PIKE_CONCAT(really_free_,DATA)(struct DATA *d); \
void PIKE_CONCAT3(free_all_,DATA,_blocks)(void); \
void PIKE_CONCAT3(count_memory_in_,DATA,s)(size_t *num, size_t *size); \
void PIKE_CONCAT3(init_,DATA,_blocks)(void)
#define PTR_HASH_ALLOC(DATA,BSIZE) \
BLOCK_ALLOC(DATA,BSIZE); \
extern struct DATA **PIKE_CONCAT(DATA,_hash_table); \
extern size_t PIKE_CONCAT(DATA,_hash_table_size); \
struct DATA *PIKE_CONCAT(find_,DATA)(void *ptr); \
struct DATA *PIKE_CONCAT3(make_,DATA,_unlocked) \
(void *ptr, PIKE_HASH_T hval); \
struct DATA *PIKE_CONCAT(make_,DATA)(void *ptr); \
struct DATA *PIKE_CONCAT(get_,DATA)(void *ptr); \
int PIKE_CONCAT3(check_,DATA,_semaphore)(void *ptr); \
void PIKE_CONCAT(move_,DATA)(struct DATA *block, void *new_ptr); \
int PIKE_CONCAT(remove_,DATA)(void *ptr); \
void PIKE_CONCAT3(low_init_,DATA,_hash)(size_t); \
void PIKE_CONCAT3(init_,DATA,_hash)(void); \
void PIKE_CONCAT3(exit_,DATA,_hash)(void)
#define PTR_HASH_ALLOC_FIXED(DATA,BSIZE) \
PTR_HASH_ALLOC(DATA,BSIZE)
#define BLOCK_ALLOC_FILL_PAGES(DATA,PAGES) BLOCK_ALLOC(DATA, n/a)
#define PTR_HASH_ALLOC_FILL_PAGES(DATA,PAGES) PTR_HASH_ALLOC(DATA, n/a)
#define PTR_HASH_ALLOC_FIXED_FILL_PAGES(DATA,PAGES) PTR_HASH_ALLOC_FIXED(DATA, n/a)
#define PTR_HASH_LOOP(DATA,HVAL,PTR) \
for ((HVAL) = (PIKE_HASH_T)PIKE_CONCAT(DATA,_hash_table_size); (HVAL)-- > 0;) \
for ((PTR) = PIKE_CONCAT(DATA,_hash_table)[HVAL]; \
(PTR); (PTR) = (PTR)->BLOCK_ALLOC_NEXT)
/* The name of a member in the BLOCK_ALLOC struct big enough to
* contain a void * (used for the free list). */
#define BLOCK_ALLOC_NEXT next
/* The name of a void * member in the PTR_HASH_ALLOC struct containing
* the key. */
#define PTR_HASH_ALLOC_DATA data