|
Functions | |
| int | qSemInit (const char *keyfile, int keyid, int nsems, bool autodestroy) |
| Under-development. | |
| int | qSemGetId (const char *keyfile, int keyid) |
| Under-development. | |
| bool | qSemEnter (int semid, int semno) |
| Under-development. | |
| bool | qSemEnterNowait (int semid, int semno) |
| Under-development. | |
| bool | qSemEnterForce (int semid, int semno, int maxwaitms, bool *forceflag) |
| Under-development. | |
| bool | qSemLeave (int semid, int semno) |
| Under-development. | |
| bool | qSemCheck (int semid, int semno) |
| Under-development. | |
| bool | qSemFree (int semid) |
| Under-development. | |
[daemon main] #define MAX_SEMAPHORES (2) // create semaphores int semid = qSemInit("/some/file/for/generating/unique/key", 'q', MAX_SEMAPHORES, true); if(semid < 0) { printf("ERROR: Can't initialize semaphores.n"); return -1; } // fork childs (... child forking codes ...) // at the end of daemon, free semaphores if(semid >= 0) qSemFree(semid); [forked child] // critical section for resource 0 qSemEnter(0); (... guaranteed as atomic procedure ...) qSemLeave(0); (... some codes ...) // critical section for resource 1 qSemEnter(1); (... guaranteed as atomic procedure ...) qSemLeave(1); [other program which uses resource 1] int semid = qSemGetId("/some/file/for/generating/unique/key", 'q'); if(semid < 0) { printf("ERROR: Can't get semaphore id.n"); return -1; } // critical section for resource 1 qSemEnter(1); (... guaranteed as atomic procedure ...) qSemLeave(1);
| int qSemInit | ( | const char * | keyfile, | |
| int | keyid, | |||
| int | nsems, | |||
| bool | autodestroy | |||
| ) |
Under-development.
| int qSemGetId | ( | const char * | keyfile, | |
| int | keyid | |||
| ) |
Under-development.
| bool qSemEnter | ( | int | semid, | |
| int | semno | |||
| ) |
Under-development.
| bool qSemEnterNowait | ( | int | semid, | |
| int | semno | |||
| ) |
Under-development.
| bool qSemEnterForce | ( | int | semid, | |
| int | semno, | |||
| int | maxwaitms, | |||
| bool * | forceflag | |||
| ) |
Under-development.
| bool qSemLeave | ( | int | semid, | |
| int | semno | |||
| ) |
Under-development.
| bool qSemCheck | ( | int | semid, | |
| int | semno | |||
| ) |
Under-development.
| bool qSemFree | ( | int | semid | ) |
Under-development.
| [Home] [About] [Examples] [Changes] [Download] [SVN Repository] [Install] [Reference] |