Example #1
0
int main()
{
	int semid=creatSemSet(1);
	initSemSet(semid,0);
	pid_t id=fork();
	
	if(id==0)
	{
		int semid=getSemSet();
		while(1)
		{
			P(semid);
			printf("A");
			fflush(stdout);
			usleep(10031);
			printf("A");
			fflush(stdout);
			usleep(10021);
			V(semid);
		}
	}
	else
	{
		while(1)
		{
			P(semid);
			printf("B");
			fflush(stdout);
			usleep(10051);
			printf("B");
			fflush(stdout);
			usleep(10003);
			V(semid);
		}
	}

	destorySemSet(semid);

}
Example #2
0
SemaphoreSet::SemaphoreSet(const string& pathName, char id,
		const InitValues& initVals, bool ownResources) :
	Resource(ownResources),
	_semId(initSemSet(pathName, id, initVals)),
	_nSems(initVals.size())
{ }
Example #3
0
SemaphoreSet::SemaphoreSet(const string& pathName, char id,
		size_t nSems, int initVals[], bool ownResources) :
	Resource(ownResources),
	_semId(initSemSet(pathName, id, InitValues(initVals, initVals + nSems))),
	_nSems(nSems)
{ }