wifi_drv: schedule on socket call kick

Issue #2988.
This commit is contained in:
Josef Söntgen 2018-08-22 16:26:51 +02:00 committed by Christian Helmuth
parent e382f68e48
commit 8193e7b3b4
1 changed files with 10 additions and 1 deletions

View File

@ -364,8 +364,16 @@ class Lx::Socket
break;
}
/*
* Save old call opcode as we may only release the blocker
* when actually did something useful, i.e., were called by
* some socket operation and not by kicking the socket.
*/
Call::Opcode old = _call.opcode;
_call.opcode = Call::NONE;
_block.up();
if (old != Call::NONE) { _block.up(); }
}
void submit_and_block()
@ -399,6 +407,7 @@ void Lx::socket_kick()
if (!_socket) { return; }
_socket->unblock_task();
Lx::scheduler().schedule();
}