if(thread_finished || signal_pending(current)) 
if (thread_finished || signal_pending(current)) 
event_thread(void *data){	int rc;	lock_kernel();	daemonize("cpci_hp_eventd");	unlock_kernel();	dbg("%s - event thread started", __FUNCTION__);	while(1) {		dbg("event thread sleeping");		down_interruptible(&event_semaphore);		dbg("event thread woken, thread_finished = %d",		    thread_finished);		if(thread_finished || signal_pending(current))			break;		do {			rc = check_slots();			if (rc > 0) {				/* Give userspace a chance to handle extraction */				msleep(500);			} else if (rc < 0) {				dbg("%s - error checking slots", __FUNCTION__);				thread_finished = 1;				break;			}		} while(atomic_read(&extracting) != 0);		/* Re-enable ENUM# interrupt */		dbg("%s - re-enabling irq", __FUNCTION__);		controller->ops->enable_irq();	}	dbg("%s - event thread signals exit", __FUNCTION__);	up(&thread_exit);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/bcc488ab02254a6e60d749187a632dc3d642d4f8/cpci_hotplug_core.c/clean/drivers/pci/hotplug/cpci_hotplug_core.c