Browse Source

Test

etomic
jl777 7 years ago
parent
commit
a131624188
  1. 3
      iguana/exchanges/LP_nativeDEX.c
  2. 15
      iguana/exchanges/LP_network.c
  3. 12
      iguana/exchanges/stats.c

3
iguana/exchanges/LP_nativeDEX.c

@ -75,7 +75,7 @@ void LP_millistats_update(struct LP_millistats *mp)
}
#include "LP_include.h"
portable_mutex_t LP_peermutex,LP_UTXOmutex,LP_utxomutex,LP_commandmutex,LP_cachemutex,LP_swaplistmutex,LP_forwardmutex,LP_pubkeymutex,LP_networkmutex,LP_psockmutex,LP_coinmutex,LP_messagemutex,LP_portfoliomutex,LP_electrummutex,LP_butxomutex,LP_reservedmutex,LP_nanorecvsmutex,LP_tradebotsmutex;
portable_mutex_t LP_peermutex,LP_UTXOmutex,LP_utxomutex,LP_commandmutex,LP_cachemutex,LP_swaplistmutex,LP_forwardmutex,LP_pubkeymutex,LP_networkmutex,LP_psockmutex,LP_coinmutex,LP_messagemutex,LP_portfoliomutex,LP_electrummutex,LP_butxomutex,LP_reservedmutex,LP_nanorecvsmutex,LP_tradebotsmutex,LP_gcmutex;
int32_t LP_canbind;
char *Broadcaststr,*Reserved_msgs[2][1000];
int32_t num_Reserved_msgs[2],max_Reserved_msgs[2];
@ -995,6 +995,7 @@ void LPinit(uint16_t myport,uint16_t mypullport,uint16_t mypubport,uint16_t mybu
portable_mutex_init(&LP_swaplistmutex);
portable_mutex_init(&LP_cachemutex);
portable_mutex_init(&LP_networkmutex);
portable_mutex_init(&LP_gcmutex);
portable_mutex_init(&LP_forwardmutex);
portable_mutex_init(&LP_psockmutex);
portable_mutex_init(&LP_coinmutex);

15
iguana/exchanges/LP_network.c

@ -274,7 +274,7 @@ void gc_loop(void *arg)
{
flag = 0;
LP_millistats_update(&LP_gcloop_stats);
portable_mutex_lock(&LP_networkmutex);
portable_mutex_lock(&LP_gcmutex);
DL_FOREACH_SAFE(LP_garbage_collector,req,rtmp)
{
DL_DELETE(LP_garbage_collector,req);
@ -282,10 +282,10 @@ void gc_loop(void *arg)
free(req);
flag++;
}
portable_mutex_unlock(&LP_networkmutex);
portable_mutex_unlock(&LP_gcmutex);
if ( flag == 0 )
usleep(5000);
else printf("gc_loop.%d\n",flag);
//else printf("gc_loop.%d\n",flag);
}
}
@ -301,7 +301,6 @@ void queue_loop(void *arg)
n = nonz = 0;
DL_FOREACH_SAFE(LP_Q,ptr,tmp)
{
nonz = 0;
n++;
flag = 0;
if ( ptr->sock >= 0 )
@ -313,10 +312,10 @@ void queue_loop(void *arg)
memcpy(&ptr->msg[ptr->msglen - sizeof(bits256)],&magic,sizeof(magic));
if ( (sentbytes= nn_send(ptr->sock,ptr->msg,ptr->msglen,0)) != ptr->msglen )
printf("%d LP_send sent %d instead of %d\n",n,sentbytes,ptr->msglen);
else flag++;
ptr->sock = -1;
if ( ptr->peerind > 0 )
ptr->starttime = (uint32_t)time(NULL);
else flag = 1;
} //else printf("sock not ready to send.%d\n",ptr->msglen);
}
else if ( 0 && time(NULL) > ptr->starttime+13 )
@ -327,7 +326,7 @@ void queue_loop(void *arg)
LP_Qfound++;
if ( (LP_Qfound % 100) == 0 )
printf("found.%u Q.%d err.%d match.%d\n",ptr->crc32,LP_Qenqueued,LP_Qerrors,LP_Qfound);
flag = 1;
flag++;
}
else if ( 0 ) // too much beyond duplicate filter when network is busy
{
@ -336,7 +335,7 @@ void queue_loop(void *arg)
if ( (ptr->sock= LP_peerindsock(&ptr->peerind)) < 0 )
{
printf("%d no more peers to try at peerind.%d %p Q_LP.%p\n",n,ptr->peerind,ptr,LP_Q);
flag = 1;
flag++;
LP_Qerrors++;
}
}
@ -349,7 +348,6 @@ void queue_loop(void *arg)
portable_mutex_unlock(&LP_networkmutex);
free(ptr);
ptr = 0;
break;
}
}
if ( arg == 0 )
@ -358,6 +356,7 @@ void queue_loop(void *arg)
// printf("LP_Q.[%d]\n",n);
if ( nonz == 0 )
usleep(10000);
else printf("queue_loop nonz.%d flag.%d n.%d\n",nonz,flag,n);
}
}

12
iguana/exchanges/stats.c

@ -589,7 +589,7 @@ int32_t iguana_getheadersize(char *buf,int32_t recvlen)
}
uint16_t RPC_port;
extern portable_mutex_t LP_commandmutex,LP_networkmutex;
extern portable_mutex_t LP_commandmutex,LP_gcmutex;
extern struct rpcrequest_info *LP_garbage_collector;
void LP_rpc_processreq(void *_ptr)
@ -608,9 +608,7 @@ void LP_rpc_processreq(void *_ptr)
jsonbuf = calloc(1,size);
remains = size-1;
buf = jsonbuf;
portable_mutex_lock(&LP_networkmutex);
spawned++;
portable_mutex_unlock(&LP_networkmutex);
if ( spawned > maxspawned )
{
printf("max rpc threads spawned and alive %d <- %d\n",maxspawned,spawned);
@ -735,10 +733,10 @@ void LP_rpc_processreq(void *_ptr)
free(space);
free(jsonbuf);
closesocket(sock);
portable_mutex_lock(&LP_networkmutex);
portable_mutex_lock(&LP_gcmutex);
DL_APPEND(LP_garbage_collector,req);
spawned--;
portable_mutex_unlock(&LP_networkmutex);
portable_mutex_unlock(&LP_gcmutex);
}
extern int32_t IAMLP;
@ -779,13 +777,13 @@ continue;
printf("error launching rpc handler on port %d, retval.%d\n",port,retval);
close(bindsock);
bindsock = -1;
portable_mutex_lock(&LP_networkmutex);
portable_mutex_lock(&LP_gcmutex);
DL_FOREACH_SAFE(LP_garbage_collector,req2,rtmp)
{
DL_DELETE(LP_garbage_collector,req2);
free(req2);
}
portable_mutex_unlock(&LP_networkmutex);
portable_mutex_unlock(&LP_gcmutex);
if ( (retval= OS_thread_create(&req->T,NULL,(void *)LP_rpc_processreq,req)) != 0 )
{
printf("error2 launching rpc handler on port %d, retval.%d\n",port,retval);

Loading…
Cancel
Save