Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 92786
b: refs/heads/master
c: 18ecbb4
h: refs/heads/master
v: v3
  • Loading branch information
Mike Isely authored and Mauro Carvalho Chehab committed Apr 24, 2008
1 parent 1d69b22 commit a46229c
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 13e027a8bf2a507334fa0d30246ce619ff581cbb
refs/heads/master: 18ecbb4771eb0ecf297e996966b3c42f69cd6c02
19 changes: 18 additions & 1 deletion trunk/drivers/media/video/pvrusb2/pvrusb2-context.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ static struct pvr2_context *pvr2_context_notify_first;
static struct pvr2_context *pvr2_context_notify_last;
static DEFINE_MUTEX(pvr2_context_mutex);
static DECLARE_WAIT_QUEUE_HEAD(pvr2_context_sync_data);
static DECLARE_WAIT_QUEUE_HEAD(pvr2_context_cleanup_data);
static int pvr2_context_cleanup_flag;
static int pvr2_context_cleaned_flag;
static struct task_struct *pvr2_context_thread_ptr;


Expand Down Expand Up @@ -153,7 +156,7 @@ static void pvr2_context_check(struct pvr2_context *mp)

static int pvr2_context_shutok(void)
{
return kthread_should_stop() && (pvr2_context_exist_first == NULL);
return pvr2_context_cleanup_flag && (pvr2_context_exist_first == NULL);
}


Expand All @@ -174,6 +177,15 @@ static int pvr2_context_thread_func(void *foo)
pvr2_context_shutok()));
} while (!pvr2_context_shutok());

pvr2_context_cleaned_flag = !0;
wake_up(&pvr2_context_cleanup_data);

pvr2_trace(PVR2_TRACE_CTXT,"pvr2_context thread cleaned up");

wait_event_interruptible(
pvr2_context_sync_data,
kthread_should_stop());

pvr2_trace(PVR2_TRACE_CTXT,"pvr2_context thread end");

return 0;
Expand All @@ -191,6 +203,11 @@ int pvr2_context_global_init(void)

void pvr2_context_global_done(void)
{
pvr2_context_cleanup_flag = !0;
wake_up(&pvr2_context_sync_data);
wait_event_interruptible(
pvr2_context_cleanup_data,
pvr2_context_cleaned_flag);
kthread_stop(pvr2_context_thread_ptr);
}

Expand Down

0 comments on commit a46229c

Please sign in to comment.