@@ -74,18 +74,39 @@ int fpm_scoreboard_init_main() /* {{{ */
7474}
7575/* }}} */
7676
77- void fpm_scoreboard_update ( int idle , int active , int lq , int lq_len , int requests , int max_children_reached , int slow_rq , int action , struct fpm_scoreboard_s * scoreboard ) /* {{{ */
77+ static struct fpm_scoreboard_s * fpm_scoreboard_get_for_update ( struct fpm_scoreboard_s * scoreboard ) /* {{{ */
7878{
7979 if (!scoreboard ) {
8080 scoreboard = fpm_scoreboard ;
8181 }
8282 if (!scoreboard ) {
8383 zlog (ZLOG_WARNING , "Unable to update scoreboard: the SHM has not been found" );
84- return ;
8584 }
8685
86+ return scoreboard ;
87+ }
88+ /* }}} */
89+
90+ void fpm_scoreboard_update_begin (struct fpm_scoreboard_s * scoreboard ) /* {{{ */
91+ {
92+ scoreboard = fpm_scoreboard_get_for_update (scoreboard );
93+ if (!scoreboard ) {
94+ return ;
95+ }
8796
8897 fpm_spinlock (& scoreboard -> lock , 0 );
98+ }
99+ /* }}} */
100+
101+ void fpm_scoreboard_update_commit (
102+ int idle , int active , int lq , int lq_len , int requests , int max_children_reached ,
103+ int slow_rq , int action , struct fpm_scoreboard_s * scoreboard ) /* {{{ */
104+ {
105+ scoreboard = fpm_scoreboard_get_for_update (scoreboard );
106+ if (!scoreboard ) {
107+ return ;
108+ }
109+
89110 if (action == FPM_SCOREBOARD_ACTION_SET ) {
90111 if (idle >= 0 ) {
91112 scoreboard -> idle = idle ;
@@ -154,6 +175,17 @@ void fpm_scoreboard_update(int idle, int active, int lq, int lq_len, int request
154175}
155176/* }}} */
156177
178+
179+ void fpm_scoreboard_update (
180+ int idle , int active , int lq , int lq_len , int requests , int max_children_reached ,
181+ int slow_rq , int action , struct fpm_scoreboard_s * scoreboard ) /* {{{ */
182+ {
183+ fpm_scoreboard_update_begin (scoreboard );
184+ fpm_scoreboard_update_commit (
185+ idle , active , lq , lq_len , requests , max_children_reached , slow_rq , action , scoreboard );
186+ }
187+ /* }}} */
188+
157189struct fpm_scoreboard_s * fpm_scoreboard_get () /* {{{*/
158190{
159191 return fpm_scoreboard ;
0 commit comments