/* * Lock release */ EXPORT void UUnlock( FastULock *lock ) { #if USE_ATOMIC_INT if ( (INT)atomic_dec((INT*)&lock->cnt) >= 0 ) { tk_sig_sem(lock->id, 1); } #else tk_sig_sem(lock->id, 1); #endif }
void client_task(INT stacd, VP exinf) { DEBUG_PRINT(("client task started\n")); test_tcp_client(); tk_sig_sem(semid, 1); tk_exd_tsk(); }
void tkn_rw_exit(krwlock_t *rw) { LockTKN(); if ( rw->semid == 0 ) panic("tkn_rw_exit: not initialized.\n"); int s = rw->oldspl; rw->oldspl = -1; tk_sig_sem(rw->semid, rw->is_writer ? MAX_READERS : 1); if ( s >= 0 ) { splx(s); } UnlockTKN(); }
static void server_task(INT stacd, VP exinf) { DEBUG_PRINT(("server task started\n")); ping(inet_addr(IP_T_ENGINE_ORG)); // t-engine.org traceroute(inet_addr(IP_T_ENGINE_ORG)); // t-engine.org //traceroute(inet_addr(IP_GOOGLE_CO_JP)); // google.co.jp test_tcp_server(); test_getaddrinfo(); test_getnameinfo(); test_http(); tk_sig_sem(semid, 1); tk_exd_tsk(); }
BOOL cg_mutex_unlock(CgMutex *mutex) { if (!mutex) return FALSE; cg_log_debug_l4("Entering...\n"); #if defined(WIN32) && !defined(ITRON) ReleaseMutex(mutex->mutexID); #elif defined(BTRON) sig_sem(mutex->mutexID); #elif defined(ITRON) sig_sem(mutex->mutexID); #elif defined(TENGINE) && !defined(PROCESS_BASE) tk_sig_sem(mutex->mutexID, 1); #elif defined(TENGINE) && defined(PROCESS_BASE) b_sig_sem(mutex->mutexID); #else pthread_mutex_unlock(&mutex->mutexID); #endif return TRUE; cg_log_debug_l4("Leaving...\n"); }
bool mupnp_mutex_unlock(mUpnpMutex *mutex) { if (!mutex) return false; mupnp_log_debug_l4("Entering...\n"); #if defined(WIN32) && !defined(ITRON) ReleaseMutex(mutex->mutexID); #elif defined(BTRON) sig_sem(mutex->mutexID); #elif defined(ITRON) sig_sem(mutex->mutexID); #elif defined(TENGINE) && !defined(PROCESS_BASE) tk_sig_sem(mutex->mutexID, 1); #elif defined(TENGINE) && defined(PROCESS_BASE) b_sig_sem(mutex->mutexID); #else pthread_mutex_unlock(&mutex->mutexID); #endif return true; mupnp_log_debug_l4("Leaving...\n"); }
int UnLockMutex(wolfSSL_Mutex* m) { tk_sig_sem(m->id, 1); return 0; }
/* * Lock release */ EXPORT void Unlock( FastLock *lock ) { if ( Dec(lock) > 0 ) { tk_sig_sem(lock->id, 1); } }
static void test_tcp_server(void) { int re; int sd; int reader = 0; char buf[5]; struct sockaddr_in sa; struct sockaddr_in sa2; socklen_t sa_len; printf("[tcp(server)] start\n"); sd = so_socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if ( sd < 0 ) { goto error; } DEBUG_PRINT(("server_task: so_socket = %d(%d, %d)\n", sd, MERCD(sd), SERCD(sd))); bzero(&sa, sizeof sa); sa.sin_family = AF_INET; sa.sin_addr.s_addr = htonl(INADDR_ANY); sa.sin_port = htons(12345); re = so_bind(sd, (struct sockaddr*)&sa, sizeof sa); DEBUG_PRINT(("server_task: so_bind = %d(%d, %d)\n", re, MERCD(re), SERCD(re))); if ( re < 0 ) { goto error; } re = so_listen(sd, 5); DEBUG_PRINT(("server_task: so_listen = %d(%d, %d)\n", re, MERCD(re), SERCD(re))); if ( re < 0 ) { goto error; } tk_sig_sem(semid, 1); DEBUG_PRINT(("server_task: server semaphore signaled 1\n")); reader = so_accept(sd, (struct sockaddr*)&sa2, &sa_len); DEBUG_PRINT(("server_task: so_accept = %d(%d, %d)\n", reader, MERCD(reader), SERCD(reader))); if ( reader < 0 ) { goto error; } wait_data(reader); bzero(buf, sizeof buf); re = so_sockatmark(reader); DEBUG_PRINT(("server_task: so_sockatmark = %d(%d, %d)\n", re, MERCD(re), SERCD(re))); if ( re < 0 ) { goto error; } re = so_read(reader, buf, 4); DEBUG_PRINT(("server_task: so_read = %d(%d, %d), buf = %s\n", re, MERCD(re), SERCD(re), buf)); if ( re < 0 || memcmp(buf, "1234", 4) != 0 ) { goto error; } wait_data(reader); bzero(buf, sizeof buf); re = so_sockatmark(reader); DEBUG_PRINT(("server_task: so_sockatmark = %d(%d, %d)\n", re, MERCD(re), SERCD(re))); if ( re < 0 ) { goto error; } re = so_recv(reader, buf, 4, MSG_OOB); DEBUG_PRINT(("server_task: so_recv = %d(%d, %d), buf = %s\n", re, MERCD(re), SERCD(re), buf)); if ( re < 0 || buf[0] != 'a' ) { goto error; } tk_sig_sem(semid2, 1); DEBUG_PRINT(("server_task: server semaphore for break signaled 2\n")); DEBUG_PRINT(("server_task: pre-accept for break\n")); re = so_accept(sd, (struct sockaddr*)&sa2, &sa_len); DEBUG_PRINT(("server_task: so_accept = %d(%d, %d)\n", re, MERCD(re), SERCD(re))); if ( re != EX_INTR ) { goto error; } so_close(reader); so_close(sd); printf("[tcp(server)] OK\n"); return; error: printf("[tcp(server)] FAILED\n"); if ( sd > 0 ) { so_close(sd); } if ( reader > 0 ) { so_close(reader); } tk_del_sem(semid2); return; }