version 1.35, 2011/09/20 15:45:53
|
version 1.37, 2011/09/20 19:28:39
|
Line 144 sem_destroy2(sem_t *semaphore, pid_t pid
|
Line 144 sem_destroy2(sem_t *semaphore, pid_t pid
|
return(1); |
return(1); |
} |
} |
|
|
erreur = sem_unlink(chemin); |
erreur = em_unlink(chemin); |
free(chemin); |
free(chemin); |
|
|
return(erreur); |
return(erreur); |
Line 297 sem_init_SysV(sem_t *semaphore, int shar
|
Line 297 sem_init_SysV(sem_t *semaphore, int shar
|
return(-1); |
return(-1); |
} |
} |
|
|
sprintf((*semaphore).path, "%s/RPL-SIGSEMAPHORE-%d-%llX", |
sprintf((*semaphore).path, "%s/RPL-SEMAPHORE-%d-%llX-%d", |
racine_segment, pthread_self(), |
racine_segment, (int) getpid(), pthread_self(), shared); |
(int) getpid(), pthread_self()); |
|
|
|
if ((desc = open((*semaphore).path, O_RDWR | O_CREAT | O_EXCL, |
if ((desc = open((*semaphore).path, O_RDWR | O_CREAT | O_EXCL, |
S_IRUSR | S_IWUSR)) == -1) |
S_IRUSR | S_IWUSR)) == -1) |
Line 309 sem_init_SysV(sem_t *semaphore, int shar
|
Line 308 sem_init_SysV(sem_t *semaphore, int shar
|
} |
} |
|
|
(*semaphore).pid = getpid(); |
(*semaphore).pid = getpid(); |
(*semaphore).tid = pthread_slef(); |
(*semaphore).tid = pthread_self(); |
clef = ftok((*semaphore).path, 1); |
clef = ftok((*semaphore).path, 1); |
close(desc); |
close(desc); |
|
|
Line 1008 sem_unlink_SysV(const char *nom)
|
Line 1007 sem_unlink_SysV(const char *nom)
|
{ |
{ |
// Détruit un sémaphore nommé créé par sem_open_SysV() |
// Détruit un sémaphore nommé créé par sem_open_SysV() |
# ifndef OS2 // IPCS_SYSV |
# ifndef OS2 // IPCS_SYSV |
semctl(semget(ftok(nom_absolu, 1), 0, 0), 0, IPC_RMID); |
semctl(semget(ftok(nom, 1), 0, 0), 0, IPC_RMID); |
|
|
if (unlink(nom_absolu) == -1) |
if (unlink(nom) == -1) |
{ |
{ |
free(nom_absolu); |
|
return(EACCES); |
return(EACCES); |
} |
} |
|
|
free(nom_absolu); |
|
return(0); |
return(0); |
# else |
# else |
|
|