mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-03 14:33:32 +03:00 
			
		
		
		
	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''
		
			
				
	
	
		
			28 lines
		
	
	
		
			832 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 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
 |