Date: Wed, 10 Jan 2001 19:13:39 +0100 From: Jakub Kruszona-Zawadzki <acid@g-em.pl> To: freebsd-bugs@FreeBSD.ORG Subject: semop locks all threads in multi-thread application Message-ID: <3A5CA653.802B0B66@g-em.pl>
next in thread | raw e-mail | index | archive | help
When in multi-thread application I call function semop and it locks, it
locks all threads (not only the current thread). It's my test program:
#include <pthread.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
void* testowyfred(void* par)
{
int i=0;
while (1)
printf("%d\n",i++);
}
int main(void) {
pthread_t watek;
long i=7;
struct sembuf buf;
int t;
pthread_create(&watek,NULL,testowyfred,(void*)&i);
sleep(1); //it's for test that thread is working
buf.sem_num = 0;
buf.sem_op = -1;
buf.sem_flg = 0;
t = semget(0xBACA,1,IPC_CREAT | 0777);
semop(t,&buf,1);
return 1;
}
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A5CA653.802B0B66>
