mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
190de95f6f
scheme for the same thread locking). include/my_pthread.h: Added variable for lock diffirentiation. include/wqueue.h: New release call. mysys/wqueue.c: New release call in case of read/write lock. storage/maria/ma_pagecache.c: Locking for read and write made waitimg for each other. storage/maria/unittest/Makefile.am: New test added. storage/maria/unittest/ma_pagecache_consist.c: Fixed thread initialization in the test. storage/maria/unittest/ma_pagecache_rwconsist.c: New BitKeeper file ``storage/maria/unittest/ma_pagecache_rwconsist.c''
27 lines
832 B
C
27 lines
832 B
C
|
|
#ifndef _wqueue_h
|
|
#define _wqueue_h
|
|
|
|
#include <my_global.h>
|
|
#include <my_pthread.h>
|
|
|
|
/* info about requests in a waiting queue */
|
|
typedef struct st_pagecache_wqueue
|
|
{
|
|
struct st_my_thread_var *last_thread; /* circular list of waiting
|
|
threads */
|
|
} WQUEUE;
|
|
|
|
#ifdef THREAD
|
|
void wqueue_link_into_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
|
void wqueue_unlink_from_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
|
void wqueue_add_to_queue(WQUEUE *wqueue, struct st_my_thread_var *thread);
|
|
void wqueue_add_and_wait(WQUEUE *wqueue,
|
|
struct st_my_thread_var *thread,
|
|
pthread_mutex_t *lock);
|
|
void wqueue_release_queue(WQUEUE *wqueue);
|
|
void wqueue_release_one_locktype_from_queue(WQUEUE *wqueue);
|
|
|
|
#endif
|
|
|
|
#endif
|