fixed direct_socket string
[brisk.git] / web / Obj / sac-a-push.phh
index c187d91..fdbb968 100644 (file)
@@ -485,7 +485,7 @@ class Sac_a_push {
 
         $thiz->file_socket_pfx = $sockname_pfx;
         $thiz->unix_socket_pfx = "unix://$sockname_pfx";
-        $thiz->direct_socket = "unix://${sockname}_admin.sock";
+        $thiz->direct_socket = "unix://${sockname_pfx}_admin.sock";
         $thiz->debug = $debug;
         $thiz->list_web = array();
         $thiz->socks = array();
@@ -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)) {