Changeset 532 for GPL/branches/uniaud32-2.1.x/lib32/misc.c
- Timestamp:
- Jul 28, 2010, 8:05:20 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GPL/branches/uniaud32-2.1.x/lib32/misc.c
r523 r532 269 269 void flush_workqueue(struct workqueue_struct *wq) 270 270 { 271 short sDAZ;272 271 273 272 if (wq->task == current) { … … 280 279 spin_lock_irq(&wq->lock); 281 280 add_wait_queue(&wq->work_done, &wait); 282 sDAZ = 0; 281 #ifndef TARGET_OS2 283 282 while (!list_empty(&wq->worklist)) { 284 if (sDAZ++ > 20) { // Temporary hack to prevent system hangs285 rprintf(("flush_workqueue: can't empty list"));286 break;287 }288 283 spin_unlock_irq(&wq->lock); 289 284 schedule(); // DAZ system hangs here because this function does nothing 290 285 spin_lock_irq(&wq->lock); 291 286 } 287 #endif 292 288 set_current_state(TASK_RUNNING); 293 289 remove_wait_queue(&wq->work_done, &wait);
Note:
See TracChangeset
for help on using the changeset viewer.