X-Git-Url: https://mop.ddnsfree.com/gitweb/?p=brisk.git;a=blobdiff_plain;f=web%2FObj%2Fsac-a-push.phh;fp=web%2FObj%2Fsac-a-push.phh;h=2035e9d4c07df538c6176e4e7c2f44b2447aee7b;hp=c187d91aa63b7e8d579983781bec8b8bdf9330fe;hb=56c0ce2aa8b9ddfc4cdf97802c5e70bc56577cc7;hpb=0b6452e28c5b16fbbde6191a6db4293905b808e3 diff --git a/web/Obj/sac-a-push.phh b/web/Obj/sac-a-push.phh index c187d91..2035e9d 100644 --- a/web/Obj/sac-a-push.phh +++ b/web/Obj/sac-a-push.phh @@ -706,7 +706,9 @@ class Sac_a_push { $lastime = 0; $dump_users = TRUE; + $sock_shard_cur = -1; while ($this->main_loop) { + $sock_shard_cur = ($sock_shard_cur + 1) % SOCK_SHARD_N; $this->app->sess_cur_set(FALSE); $this->curtime = time(); if ($lastime != ($this->curtime >> 2)) { @@ -828,7 +830,7 @@ class Sac_a_push { stream_set_blocking($new_unix, $this->blocking_mode); $this->direct_mgmt($new_unix); } // not socket_list nor socket_list_cmd - else { // already opened socket + else if ($id % SOCK_SHARD_N == $sock_shard_cur) { // already opened socket $buf = fread($sock, 4096); // if socket is closed if ($buf == FALSE || feof($sock)) {