- Timestamp:
- Jul 10, 2009, 1:14:41 PM (16 years ago)
- Location:
- trunk/src/corelib/thread
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/corelib/thread/qthread_os2.cpp
r74 r81 322 322 } 323 323 324 void QThreadPrivate::setPriority(QThread::Priority priority) 325 { 326 this->priority = priority; 327 328 ULONG prioClass = 0; 329 LONG prioDelta = 0; 330 switch (priority) { 331 case QThread::IdlePriority: 332 prioClass = PRTYC_IDLETIME; 333 prioDelta = PRTYD_MINIMUM; 334 break; 335 336 case QThread::LowestPriority: 337 prioClass = PRTYC_IDLETIME; 338 break; 339 340 case QThread::LowPriority: 341 prioClass = PRTYC_IDLETIME; 342 prioDelta = PRTYD_MAXIMUM; 343 break; 344 345 case QThread::NormalPriority: 346 prioClass = PRTYC_REGULAR; 347 break; 348 349 case QThread::HighPriority: 350 prioClass = PRTYC_REGULAR; 351 prioDelta = PRTYD_MAXIMUM; 352 break; 353 354 case QThread::HighestPriority: 355 prioClass = PRTYC_TIMECRITICAL; 356 break; 357 358 case QThread::TimeCriticalPriority: 359 prioClass = PRTYC_TIMECRITICAL; 360 prioDelta = PRTYD_MAXIMUM; 361 break; 362 363 case QThread::InheritPriority: 364 default: 365 PTIB ptib; 366 DosGetInfoBlocks(&ptib, NULL); 367 prioClass = (ptib->tib_ptib2->tib2_ulpri >> 8) & 0xFF; 368 prioDelta = (ptib->tib_ptib2->tib2_ulpri) & 0xFF; 369 break; 370 } 371 372 APIRET rc = DosSetPriority(PRTYS_THREAD, prioClass, prioDelta, tid); 373 if (rc != NO_ERROR) 374 qWarning("QThreadPrivate::setPriority: DosSetPriority returned %lu", rc); 375 } 376 324 377 void QThread::start(Priority priority) 325 378 { … … 344 397 } 345 398 346 setPriority(priority);399 d->setPriority(priority); 347 400 } 348 401 … … 446 499 } 447 500 448 d->priority = priority; 449 450 ULONG prioClass = 0; 451 LONG prioDelta = 0; 452 switch (priority) { 453 case IdlePriority: 454 prioClass = PRTYC_IDLETIME; 455 prioDelta = PRTYD_MINIMUM; 456 break; 457 458 case LowestPriority: 459 prioClass = PRTYC_IDLETIME; 460 break; 461 462 case LowPriority: 463 prioClass = PRTYC_IDLETIME; 464 prioDelta = PRTYD_MAXIMUM; 465 break; 466 467 case NormalPriority: 468 prioClass = PRTYC_REGULAR; 469 break; 470 471 case HighPriority: 472 prioClass = PRTYC_REGULAR; 473 prioDelta = PRTYD_MAXIMUM; 474 break; 475 476 case HighestPriority: 477 prioClass = PRTYC_TIMECRITICAL; 478 break; 479 480 case TimeCriticalPriority: 481 prioClass = PRTYC_TIMECRITICAL; 482 prioDelta = PRTYD_MAXIMUM; 483 break; 484 485 case InheritPriority: 486 default: 487 PTIB ptib; 488 DosGetInfoBlocks( &ptib, NULL ); 489 prioClass = (ptib->tib_ptib2->tib2_ulpri >> 8) & 0xFF; 490 prioDelta = (ptib->tib_ptib2->tib2_ulpri) & 0xFF; 491 break; 492 } 493 494 APIRET rc = DosSetPriority(PRTYS_THREAD, prioClass, prioDelta, d->tid); 495 if (rc != NO_ERROR) 496 qWarning("QThread::setPriority: DosSetPriority returned %lu", rc); 501 d->setPriority(priority); 497 502 } 498 503 -
trunk/src/corelib/thread/qthread_p.h
r69 r81 180 180 bool terminationEnabled, terminatePending; 181 181 182 void setPriority(QThread::Priority priority); 183 182 184 static void start(void *); 183 185 static void finish(void *, bool lockAnyway=true);
Note:
See TracChangeset
for help on using the changeset viewer.