diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2007-09-30 17:23:13 +0000 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2007-09-30 17:23:13 +0000 |
commit | 035529c487feb5a0e1d951b1ac8f82c23cfbff62 (patch) | |
tree | eab78bdc524e60fd61c8626f6ce560c1357e7d76 /uisimulator/sdl/kernel.c | |
parent | 3f9a9a1a01df7c73b569232f96a4170ed8910ea2 (diff) | |
download | rockbox-035529c487feb5a0e1d951b1ac8f82c23cfbff62.tar.gz rockbox-035529c487feb5a0e1d951b1ac8f82c23cfbff62.zip |
Enable auto reply for queue messages sent with queue_send. It's only nescessary to use queue_reply to return a value other than zero or to return a result before waiting on the queue again.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14923 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator/sdl/kernel.c')
-rw-r--r-- | uisimulator/sdl/kernel.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/uisimulator/sdl/kernel.c b/uisimulator/sdl/kernel.c index ff6c94933b..e2aa0d31c4 100644 --- a/uisimulator/sdl/kernel.c +++ b/uisimulator/sdl/kernel.c | |||
@@ -159,6 +159,14 @@ void queue_wait(struct event_queue *q, struct event *ev) | |||
159 | { | 159 | { |
160 | unsigned int rd; | 160 | unsigned int rd; |
161 | 161 | ||
162 | #ifdef HAVE_EXTENDED_MESSAGING_AND_NAME | ||
163 | if (q->send && q->send->curr_sender) | ||
164 | { | ||
165 | /* auto-reply */ | ||
166 | queue_release_sender(&q->send->curr_sender, 0); | ||
167 | } | ||
168 | #endif | ||
169 | |||
162 | if (q->read == q->write) | 170 | if (q->read == q->write) |
163 | { | 171 | { |
164 | block_thread(&q->thread); | 172 | block_thread(&q->thread); |
@@ -178,6 +186,14 @@ void queue_wait(struct event_queue *q, struct event *ev) | |||
178 | 186 | ||
179 | void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks) | 187 | void queue_wait_w_tmo(struct event_queue *q, struct event *ev, int ticks) |
180 | { | 188 | { |
189 | #ifdef HAVE_EXTENDED_MESSAGING_AND_NAME | ||
190 | if (q->send && q->send->curr_sender) | ||
191 | { | ||
192 | /* auto-reply */ | ||
193 | queue_release_sender(&q->send->curr_sender, 0); | ||
194 | } | ||
195 | #endif | ||
196 | |||
181 | if (q->read == q->write && ticks > 0) | 197 | if (q->read == q->write && ticks > 0) |
182 | { | 198 | { |
183 | block_thread_w_tmo(&q->thread, ticks); | 199 | block_thread_w_tmo(&q->thread, ticks); |