Skip to content

Commit 17b41e3

Browse files
committed
fix: regression locking get_rpc
1 parent 350d5fe commit 17b41e3

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

src/bridge.h

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,17 @@ class BridgeClass {
6363

6464
void update() {
6565

66+
k_msleep(1);
6667
// Lock read mutex
67-
while(1){
68-
k_mutex_lock(&read_mutex, K_FOREVER);
69-
if (server->get_rpc()) {
70-
k_mutex_unlock(&read_mutex);
71-
break;
72-
}
68+
k_mutex_lock(&read_mutex, K_FOREVER);
69+
if (!server->get_rpc()) {
7370
k_mutex_unlock(&read_mutex);
74-
k_msleep(1);
71+
return;
7572
}
73+
k_mutex_unlock(&read_mutex);
7674

7775
server->process_request();
78-
76+
7977
// Lock write mutex
8078
k_mutex_lock(&write_mutex, K_FOREVER);
8179
server->send_response();
@@ -124,18 +122,16 @@ class BridgeClass {
124122
void update_safe() {
125123

126124
// Lock read mutex
127-
while(1){
128-
k_mutex_lock(&read_mutex, K_FOREVER);
129-
if (server->get_rpc()) {
130-
k_mutex_unlock(&read_mutex);
131-
break;
132-
}
125+
k_msleep(1);
126+
k_mutex_lock(&read_mutex, K_FOREVER);
127+
if (!server->get_rpc()) {
133128
k_mutex_unlock(&read_mutex);
134-
k_msleep(1);
129+
return;
135130
}
131+
k_mutex_unlock(&read_mutex);
136132

137133
server->process_request("__safe__");
138-
134+
139135
// Lock write mutex
140136
k_mutex_lock(&write_mutex, K_FOREVER);
141137
server->send_response();

0 commit comments

Comments
 (0)