173 Commits (8f1336986f91358786d4c4c9cfa88ec0058ab7ac)

Author SHA1 Message Date
Con Kolivas 8f1336986f Use a unique event structure for each client added to the epoll list 10 years ago
Con Kolivas 6a159bf5dc We won't get no error if we are not testing fd -1 sockets any more, and use errno for consistent parsing of socket close errors 10 years ago
Con Kolivas 62d1ec3f8a Use signal handlers from sender and receiver threads in the connector avoid needing to pthread tryjoin on every message 10 years ago
Con Kolivas 2bde0bbe3d Avoid trying to parse messages or test the client's error if their fd has already been invalidated 10 years ago
Con Kolivas d0f7ec7c35 Decrease verbosity of missing client warning in receiver, adding id number to the output 10 years ago
Con Kolivas 6c0c7dd7c4 Rework parse_client_msg to use the non blocking recv return values avoiding the need for an extra wait_read_select 10 years ago
Con Kolivas 84ca31fcca Drop stratifier id when client id is not found in connector 10 years ago
Con Kolivas 93d5760b2d Set server to the passthrough server client in passthrough mode 10 years ago
Con Kolivas e095ba4b49 Mask out error 0 in socket error messages 10 years ago
Con Kolivas 3f3dc7f4f3 Implement a stratum mining.term call which notifies the stratifier this client is terminating and use it to signal upstream pools when passthrough subclients have disconnected 10 years ago
Con Kolivas e9441f2e1a Drop passthrough proxy connection from stratifier 10 years ago
Con Kolivas 8bb50fa058 Process epoll read messages before hangups and errors and add more info about the type of hang up, increasing verbosity when it's an unexpected error 10 years ago
Con Kolivas 0b96be0144 Use non blocking receive in parse_client_msg as we check for read readiness with wait_read_select first, and there is the unlikely event the state changes 10 years ago
Con Kolivas da2f62aea9 Pass through the downstream clients' address and server 10 years ago
Con Kolivas bf72ebbee6 Reinstate checking for zero as a return from recv for cleanly disconnected clients 10 years ago
Con Kolivas 75d24d1d07 Reference clients in the epoll list by their client id to avoid double lookup and possible wrong client selection 10 years ago
Con Kolivas 88fcb55faa Revert "Check clients match in epoll loop" 10 years ago
Con Kolivas b50f2ba86c Check clients match in epoll loop 10 years ago
Con Kolivas e012108280 Explicitly check for EPOLLRDHUP as well 10 years ago
ckolivas 91d2aca51f Detect pollhup in wait_read_select and not through recv fail conditions 10 years ago
ckolivas 49ce587949 nolinger client sockets when we're about to close them 10 years ago
ckolivas da20ac7f3e Disable user of nolinger on client sockets 10 years ago
Con Kolivas cd754e98e4 Move connector to using unix receive queues 10 years ago
Con Kolivas 655f82f09d Remove clients from the epoll list when invalidating them to avoid a receiver event and check they still exist in their original form on getting a receiver event 10 years ago
Con Kolivas 24d9155f62 Recycle client instances in the connector 10 years ago
Con Kolivas 4c97df787d Remove use of upgradeable locks in connector 10 years ago
Con Kolivas d4304de798 These weren't the droids we were looking for. 10 years ago
Con Kolivas a465e47f85 Use async send proc in the connector 10 years ago
Con Kolivas 42f14a9536 Add full lock tracking for mutexes and rwlocks 10 years ago
Con Kolivas 163fc40afb Check all delayed clients for a serviceable one in the connector when we can and consider dropping a client servicing one to not potentially create delayed sends faster than we service them 10 years ago
Con Kolivas 8b1b6d45d6 fd being invalidated is checked for in wait_write_select so we don't need to handle it twice 10 years ago
Con Kolivas 1a3ed51ba9 Fix workings when no serverurl is explicitly specified in config 10 years ago
Con Kolivas 5dd35d6555 Fix workings when no serverurl is explicitly specified in config 10 years ago
Con Kolivas 04f4f090e2 Convert use of %ld to PRId64 in connector 10 years ago
Con Kolivas 841d22ec05 Drop the server backlog to minimum after the pool has been accepting connections for 90 seconds 10 years ago
Con Kolivas 78b2cf0277 Further fine grain the locking in the connector 10 years ago
Con Kolivas d94202dacb Avoid one cast 10 years ago
Con Kolivas a7b2c3d8aa Shorten sleep interval while accept flag is not set 10 years ago
Con Kolivas 6274371ccf Microoptimise epoll_wait call 10 years ago
Con Kolivas bfbb9b574f Remove unused macro 10 years ago
Con Kolivas 0c07ddb5ad Don't use client structure out of lock in connector's drop_client 10 years ago
Con Kolivas 21c7fcb2c2 Do not grab the cdata lock in the connector when sending data as false negatives are safe 10 years ago
Con Kolivas 71917ed4da Do not send messages from the connector of clients we've already dropped 10 years ago
Con Kolivas 3bbce63302 Generate connector stats on command 10 years ago
Con Kolivas d6c57c0817 Do not check for thread shutdown on every pass through the connector 10 years ago
Con Kolivas b23dbab1a1 Use a doubly linked list for dead clients in the connector for O(1) removal 10 years ago
Con Kolivas a72510df7f Only ask the stratifier to drop a client once 10 years ago
Con Kolivas 01ce6a65a0 Revert wrongly implicated linked list freeing workaround 10 years ago
Con Kolivas 259f8ca4a0 Use invalidate in the connector when dropping a client to ensure the stratifier drops it as well 10 years ago
Con Kolivas b5f65d2e5a Tell the stratifier to drop a client if the connector is told to drop it and cannot find it any more 10 years ago