コード例 #1
0
ファイル: PICA_nodewait.c プロジェクト: NePank/pica-pica
void nodewait_start_connect(struct nodewait *nw)
{
#ifndef WIN32
pthread_t thr;
pthread_attr_t attr;
#else
DWORD thread_id;
HANDLE thread_h;
#endif

PICA_debug1("connecting to  node  %.255s %u ...", nw->addr.addr, nw->addr.port);

nw->state = PICA_NODEWAIT_CONNECTING;
#ifndef WIN32
if (0 != pthread_attr_init(&attr))
	PICA_error("pthread_attr_init() call failed.");

pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

if (0 != pthread_create(&thr, &attr, nodewait_connect_thread, (void*)nw))
	PICA_error("unable to create thread: %s", strerror(errno));

pthread_attr_destroy(&attr);
#else
thread_h = CreateThread(NULL, 4096, nodewait_connect_thread, (void*)nw, 0, &thread_id);

if (NULL != thread_h)
	CloseHandle(thread_h);
else
	PICA_error("unable to create thread: %u", GetLastError());
#endif

}
コード例 #2
0
static int nodeaddr_load_sqlite_cb(void *p, int argc, char **argv, char **ColName)
{
	struct cb_param *cp = (struct cb_param*)p;
	struct PICA_nodeaddr *na;

	if (argc != 4)
		return 1;

	na = (struct PICA_nodeaddr *)malloc(sizeof(struct PICA_nodeaddr));

	if (!na)
		return 1;

	PICA_debug1("node address loaded: addr: %s port %s\n", argv[0], argv[1]);//debug

	strncpy(na->addr, argv[0], 255);
	na->addr[255] = '\0';

	na->port = atoi(argv[1]);

	na->inactive_count = atoi(argv[2]);

	na->last_active = atoi(argv[3]);

	na->next = *(cp->n_addr);

	*(cp->n_addr) = na;
	(*(cp->N))++;

	return 0;
}
コード例 #3
0
ファイル: PICA_nodewait.c プロジェクト: NePank/pica-pica
void nodewait_start_resolve(struct PICA_nodeaddr *a)
{
struct nodewait *nw;
#ifndef WIN32
pthread_t thr;
pthread_attr_t attr;
#else
DWORD thread_id;
HANDLE thread_h;
#endif

nw = nodewait_list_addnew();

if (!nw)
	return;

nw ->addr = *a;

PICA_debug1("starting to resolve  node address %.255s %u ...", nw->addr.addr, nw->addr.port);

nw->state = PICA_NODEWAIT_RESOLVING;

#ifndef WIN32
if (0 != pthread_attr_init(&attr))
	PICA_error("pthread_attr_init() call failed.");

pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);

if (0 != pthread_create(&thr, &attr, nodewait_resolve_thread, (void*)nw))
	PICA_error("unable to create thread: %s", strerror(errno));

pthread_attr_destroy(&attr);
#else
thread_h = CreateThread(NULL, 4096, nodewait_resolve_thread, (void*)nw, 0, &thread_id);

if (NULL != thread_h)
	CloseHandle(thread_h);
else
	PICA_error("unable to create thread: %u", GetLastError());
#endif
}