sem->sem_value--;
sem->__sem_value--;
int sem_trywait(sem_t * sem){  int retval;  __pthread_lock((struct _pthread_fastlock *) &sem->sem_lock, NULL);  if (sem->sem_value == 0) {    errno = EAGAIN;    retval = -1;  } else {    sem->sem_value--;    retval = 0;  }  __pthread_unlock((struct _pthread_fastlock *) &sem->sem_lock);  return retval;}