1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_canvas.hxx" 26 27 28 #ifdef WNT 29 # if defined _MSC_VER 30 # pragma warning(push,1) 31 # endif 32 33 # include <windows.h> 34 35 # if defined _MSC_VER 36 # pragma warning(pop) 37 # endif 38 #endif 39 40 #include "osl/diagnose.h" 41 #include "canvas/prioritybooster.hxx" 42 43 44 namespace canvas 45 { 46 namespace tools 47 { 48 struct PriorityBooster_Impl 49 { 50 int mnOldPriority; 51 }; 52 PriorityBooster(sal_Int32 nDelta)53 PriorityBooster::PriorityBooster( sal_Int32 nDelta ) : 54 mpImpl( new PriorityBooster_Impl ) 55 { 56 #ifdef WNT 57 HANDLE aCurrThread = GetCurrentThread(); 58 mpImpl->mnOldPriority = GetThreadPriority( aCurrThread ); 59 60 if ( 0 == SetThreadPriority( aCurrThread, mpImpl->mnOldPriority + nDelta ) ) 61 { 62 OSL_ENSURE( false, 63 "PriorityBooster::PriorityBooster(): Was not able to modify thread priority" ); 64 } 65 #else 66 nDelta = 0; // #i55991# placate gcc warning 67 #endif 68 } 69 ~PriorityBooster()70 PriorityBooster::~PriorityBooster() 71 { 72 #ifdef WNT 73 SetThreadPriority( GetCurrentThread(), 74 mpImpl->mnOldPriority ); 75 #endif 76 } 77 } // namespace tools 78 79 } // namespace canvas 80