diff options
Diffstat (limited to 'innobase/buf/ts/tsos.c')
-rw-r--r-- | innobase/buf/ts/tsos.c | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/innobase/buf/ts/tsos.c b/innobase/buf/ts/tsos.c deleted file mode 100644 index c1cc3f27172..00000000000 --- a/innobase/buf/ts/tsos.c +++ /dev/null @@ -1,185 +0,0 @@ -/************************************************************************ -The test module for the operating system interface - -(c) 1995 Innobase Oy - -Created 9/27/1995 Heikki Tuuri -*************************************************************************/ - - -#include "../os0thread.h" -#include "../os0shm.h" -#include "../os0proc.h" -#include "../os0sync.h" -#include "../os0file.h" -#include "ut0ut.h" -#include "sync0sync.h" -#include "mem0mem.h" - -ulint last_thr = 1; - -byte global_buf[1000000]; - -os_file_t file; -os_file_t file2; - -os_event_t gl_ready; - -mutex_t ios_mutex; -ulint ios; - -/************************************************************************ -Io-handler thread function. */ - -ulint -handler_thread( -/*===========*/ - void* arg) -{ - ulint segment; - void* mess; - ulint i; - bool ret; - - segment = *((ulint*)arg); - - printf("Thread %lu starts\n", segment); - - for (i = 0;; i++) { - ret = os_aio_wait(segment, &mess); - - mutex_enter(&ios_mutex); - ios++; - mutex_exit(&ios_mutex); - - ut_a(ret); -/* printf("Message for thread %lu %lu\n", segment, - (ulint)mess); */ - if ((ulint)mess == 3333) { - os_event_set(gl_ready); - } - } - - return(0); -} - -/************************************************************************ -Test of io-handler threads */ - -void -test4(void) -/*=======*/ -{ - ulint i; - bool ret; - void* buf; - ulint rnd; - ulint tm, oldtm; - - os_thread_t thr[5]; - os_thread_id_t id[5]; - ulint n[5]; - - printf("-------------------------------------------\n"); - printf("OS-TEST 4. Test of asynchronous file io\n"); - - /* Align the buffer for file io */ - - buf = (void*)(((ulint)global_buf + 6300) & (~0xFFF)); - - gl_ready = os_event_create(NULL); - ios = 0; - - sync_init(); - mem_init(); - - mutex_create(&ios_mutex); - - for (i = 0; i < 5; i++) { - n[i] = i; - - thr[i] = os_thread_create(handler_thread, n + i, id + i); - } - - rnd = 0; - - oldtm = ut_clock(); - - for (i = 0; i < 4096; i++) { - ret = os_aio_read(file, (byte*)buf + 8192 * (rnd % 100), - 8192 * (rnd % 4096), 0, - 8192, (void*)i); - ut_a(ret); - rnd += 1; - } - - ret = os_aio_read(file, buf, 8192 * (rnd % 1024), 0, 8192, - (void*)3333); - ut_a(ret); - - ut_a(!os_aio_all_slots_free()); - - tm = ut_clock(); - - printf("All ios queued! N ios: %lu\n", ios); - - printf("Wall clock time for test %lu milliseconds\n", tm - oldtm); - - os_event_wait(gl_ready); - - tm = ut_clock(); - printf("N ios: %lu\n", ios); - printf("Wall clock time for test %lu milliseconds\n", tm - oldtm); - - os_thread_sleep(2000000); - - printf("N ios: %lu\n", ios); - - ut_a(os_aio_all_slots_free()); -} - -/************************************************************************* -Initializes the asyncronous io system for tests. */ - -void -init_aio(void) -/*==========*/ -{ - bool ret; - void* buf; - - buf = (void*)(((ulint)global_buf + 6300) & (~0xFFF)); - - os_aio_init(160, 5); - file = os_file_create("j:\\tsfile4", OS_FILE_CREATE, OS_FILE_TABLESPACE, - &ret); - - if (ret == FALSE) { - ut_a(os_file_get_last_error() == OS_FILE_ALREADY_EXISTS); - - file = os_file_create("j:\\tsfile4", OS_FILE_OPEN, - OS_FILE_TABLESPACE, &ret); - - ut_a(ret); - } -} - -/************************************************************************ -Main test function. */ - -void -main(void) -/*======*/ -{ - ulint tm, oldtm; - - oldtm = ut_clock(); - - init_aio(); - - test4(); - - tm = ut_clock(); - printf("Wall clock time for test %lu milliseconds\n", tm - oldtm); - printf("TESTS COMPLETED SUCCESSFULLY!\n"); -} |