38 namespace Gecode {
namespace Support {
44 Runnable::operator
delete(
void*
p) {
48 Runnable::operator
new(
size_t s) {
58 Mutex::operator
new(
size_t s) {
63 Mutex::operator
delete(
void*
p) {
67 #if defined(GECODE_THREADS_OSX) || defined(GECODE_THREADS_PTHREADS_SPINLOCK)
74 FastMutex::operator
new(
size_t s) {
79 FastMutex::operator
delete(
void*
p) {
122 Thread::Run::operator
delete(
void*
p) {
126 Thread::Run::operator
new(
size_t s) {
Mutex m
Mutex for synchronization.
void rfree(void *p)
Free memory block starting at p.
An interface for objects that can be run by a thread.
static void run(Runnable *r)
Construct a new thread and run r.
void acquire(void)
Acquire the mutex and possibly block.
void * ralloc(size_t s)
Allocate s bytes from heap.
void signal(void)
Signal the event.
Runnable * r
Runnable object to execute.
Heap heap
The single global heap.
A mutex for mutual exclausion among several threads.
void release(void)
Release the mutex.
void run(Runnable *r)
Run a runnable object.
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Lock(Mutex &m0)
Enter lock.
static Run * idle
Idle runners.
Event e
Event to wait for next runnable object to execute.
static Mutex * m(void)
Mutex for synchronization.
Gecode toplevel namespace