Example #1
0
int snmp_res_unlock(int groupID, int resourceID)
{
    int rc = 0;
    mutex_type *mutex = _mt_res(groupID, resourceID);
    if (!mutex) return EFAULT;

#if HAVE_PTHREAD_H
    rc = pthread_mutex_unlock(mutex);
#elif defined(WIN32)
    LeaveCriticalSection(mutex);
#endif

    return rc;
}
Example #2
0
int snmp_res_init(void)
{    
    int ii, jj;
    int rc = 0;
    mutex_type *mutex;

  for (jj = 0; (0 == rc) && (jj < MT_MAX_IDS); jj++)
  for (ii = 0; (0 == rc) && (ii < MT_LIB_MAXIMUM); ii++)
  {
    mutex = _mt_res(jj, ii);
    if (!mutex) continue;
    rc = snmp_res_init_mutex( mutex );
  }

    return rc;
}
Example #3
0
int
snmp_res_destroy_mutex(int groupID, int resourceID)
{
    int rc = 0;
    mutex_type *mutex = _mt_res(groupID, resourceID);
    if (!mutex) {
	return EFAULT;
    }

#if HAVE_PTHREAD_H
    rc = pthread_mutex_destroy(mutex);
#elif defined(WIN32)
    DeleteCriticalSection(mutex);
#endif

    return rc;
}