Torc  0.1
torccocoa.mm
Go to the documentation of this file.
1 /* Class TorcCocoa
2 *
3 * This file is part of the Torc project.
4 *
5 * Copyright (C) Mark Kendall 2015-18
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20 * USA.
21 */
22 
23 // Torc
24 #include "torclogging.h"
25 #include "torccocoa.h"
26 
27 // OS X
28 #import <Cocoa/Cocoa.h>
29 
30 @implementation NSThread (Dummy)
31 - (void) run
32 {
33 }
34 @end
35 
40 {
41  // Inform the Cocoa framework that we are multithreaded so that it creates
42  // its internal locks.
43  if (![NSThread isMultiThreaded])
44  {
45  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
46  NSThread *thread = [[NSThread alloc] init];
47  SEL threadSelector = @selector(run);
48  [NSThread detachNewThreadSelector:threadSelector toTarget:thread withObject:nil];
49  [pool release];
50  }
51 
52  NSAutoreleasePool *pool = nullptr;
53  pool = [[NSAutoreleasePool alloc] init];
54  m_pool = pool;
55 }
56 
58 {
59  if (m_pool)
60  {
61  NSAutoreleasePool *pool = (NSAutoreleasePool*) m_pool;
62  [pool release];
63  }
64 }