typedef struct SignalPool { GsNode* free_head; /* the head of free signal list */ GsNode* free_tail; /* the tail of free signal list */ GsNode* used_head; /* the head of used signal list */ GsNode* used_tail; /* the tail of used signal list */ int pool_size; /* the size of the array list */ pthread_mutex_t sigpool_lock; } SignalPool;