summaryrefslogtreecommitdiff
path: root/res/stasis/command.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/stasis/command.c')
-rw-r--r--res/stasis/command.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/res/stasis/command.c b/res/stasis/command.c
index 534e434ec..024f02b6a 100644
--- a/res/stasis/command.c
+++ b/res/stasis/command.c
@@ -78,21 +78,26 @@ struct stasis_app_command *command_create(
void command_complete(struct stasis_app_command *command, int retval)
{
- SCOPED_MUTEX(lock, &command->lock);
-
+ ast_mutex_lock(&command->lock);
command->is_done = 1;
command->retval = retval;
ast_cond_signal(&command->condition);
+ ast_mutex_unlock(&command->lock);
}
int command_join(struct stasis_app_command *command)
{
- SCOPED_MUTEX(lock, &command->lock);
+ int ret;
+
+ ast_mutex_lock(&command->lock);
while (!command->is_done) {
ast_cond_wait(&command->condition, &command->lock);
}
- return command->retval;
+ ret = command->retval;
+ ast_mutex_unlock(&command->lock);
+
+ return ret;
}
void command_invoke(struct stasis_app_command *command,