Skip to content

Commit 607ea2e

Browse files
committed
Merge pull request #147 from sgl0v/nsthread
The `currentThread` method call returns different values
2 parents 0d1858f + bd16e4b commit 607ea2e

File tree

4 files changed

+51
-12
lines changed

4 files changed

+51
-12
lines changed

Foundation.xcodeproj/project.pbxproj

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@
199199
5BF7AEBF1BCD51F9008F214A /* NSURL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC3F4A1BCC5DCB00ED97BB /* NSURL.swift */; };
200200
5BF7AEC01BCD51F9008F214A /* NSUUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC3F4B1BCC5DCB00ED97BB /* NSUUID.swift */; };
201201
5BF7AEC11BCD51F9008F214A /* NSValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC3F4C1BCC5DCB00ED97BB /* NSValue.swift */; };
202+
5E5835F41C20C9B500C81317 /* TestNSThread.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E5835F31C20C9B500C81317 /* TestNSThread.swift */; };
202203
612952F91C1B235900BE0FD9 /* TestNSNull.swift in Sources */ = {isa = PBXBuildFile; fileRef = 612952F81C1B235900BE0FD9 /* TestNSNull.swift */; };
203204
61F8AE7D1C180FC600FB62F0 /* TestNSNotificationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61F8AE7C1C180FC600FB62F0 /* TestNSNotificationCenter.swift */; };
204205
6E203B8D1C1303BB003B2576 /* TestNSBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E203B8C1C1303BB003B2576 /* TestNSBundle.swift */; };
@@ -538,6 +539,7 @@
538539
5BDC3FCF1BCF17E600ED97BB /* NSCFSet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSCFSet.swift; sourceTree = "<group>"; };
539540
5BDC405C1BD6D83B00ED97BB /* TestFoundation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TestFoundation.app; sourceTree = BUILT_PRODUCTS_DIR; };
540541
5BF7AEC21BCD568D008F214A /* ForSwiftFoundationOnly.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ForSwiftFoundationOnly.h; sourceTree = "<group>"; };
542+
5E5835F31C20C9B500C81317 /* TestNSThread.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSThread.swift; sourceTree = "<group>"; };
541543
5EB6A15C1C188FC40037DCB8 /* TestNSJSONSerialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSJSONSerialization.swift; sourceTree = "<group>"; };
542544
612952F81C1B235900BE0FD9 /* TestNSNull.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSNull.swift; sourceTree = "<group>"; };
543545
61F8AE7C1C180FC600FB62F0 /* TestNSNotificationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSNotificationCenter.swift; sourceTree = "<group>"; };
@@ -1043,37 +1045,38 @@
10431045
EA66F65A1BF1976100136161 /* Tests */ = {
10441046
isa = PBXGroup;
10451047
children = (
1046-
61F8AE7C1C180FC600FB62F0 /* TestNSNotificationCenter.swift */,
10471048
C93559281C12C49F009FD6A9 /* TestNSAffineTransform.swift */,
10481049
EA66F63C1BF1619600136161 /* TestNSArray.swift */,
10491050
6E203B8C1C1303BB003B2576 /* TestNSBundle.swift */,
1050-
5BC1D8BC1BF3ADFE009D3973 /* TestNSCharacterSet.swift */,
1051+
A5A34B551C18C85D00FD972B /* TestNSByteCountFormatter.swift */,
10511052
52829AD61C160D64003BC4EF /* TestNSCalendar.swift */,
1053+
5BC1D8BC1BF3ADFE009D3973 /* TestNSCharacterSet.swift */,
1054+
DCDBB8321C1768AC00313299 /* TestNSData.swift */,
1055+
22B9C1E01C165D7A00DECFF9 /* TestNSDate.swift */,
10521056
EA66F63D1BF1619600136161 /* TestNSDictionary.swift */,
1053-
848A30571C137B3500C83206 /* TestNSHTTPCookie.swift */,
10541057
525AECEB1BF2C96400D15BB0 /* TestNSFileManager.swift */,
10551058
88D28DE61C13AE9000494606 /* TestNSGeometry.swift */,
1059+
848A30571C137B3500C83206 /* TestNSHTTPCookie.swift */,
10561060
4AE109261C17CCBF007367B5 /* TestNSIndexPath.swift */,
10571061
EA66F63E1BF1619600136161 /* TestNSIndexSet.swift */,
10581062
5EB6A15C1C188FC40037DCB8 /* TestNSJSONSerialization.swift */,
1063+
61F8AE7C1C180FC600FB62F0 /* TestNSNotificationCenter.swift */,
1064+
612952F81C1B235900BE0FD9 /* TestNSNull.swift */,
10591065
EA66F63F1BF1619600136161 /* TestNSNumber.swift */,
10601066
4DC1D07F1C12EEEF00B5948A /* TestNSPipe.swift */,
10611067
400E22641C1A4E58007C5933 /* TestNSProcessInfo.swift */,
10621068
EA66F6401BF1619600136161 /* TestNSPropertyList.swift */,
10631069
E876A73D1C1180E000F279EC /* TestNSRange.swift */,
1070+
844DC3321C17584F005611F9 /* TestNSScanner.swift */,
10641071
EA66F6411BF1619600136161 /* TestNSSet.swift */,
10651072
EA66F6421BF1619600136161 /* TestNSString.swift */,
1066-
C2A9D75B1C15C08B00993803 /* TestNSUUID.swift */,
1067-
EA66F6431BF1619600136161 /* TestNSURL.swift */,
1068-
5B40F9F11C125187000E72E3 /* TestNSXMLParser.swift */,
1069-
22B9C1E01C165D7A00DECFF9 /* TestNSDate.swift */,
1070-
DCDBB8321C1768AC00313299 /* TestNSData.swift */,
1073+
5E5835F31C20C9B500C81317 /* TestNSThread.swift */,
10711074
84BA558D1C16F90900F48C54 /* TestNSTimeZone.swift */,
1072-
844DC3321C17584F005611F9 /* TestNSScanner.swift */,
1075+
EA66F6431BF1619600136161 /* TestNSURL.swift */,
10731076
83712C8D1C1684900049AD49 /* TestNSURLRequest.swift */,
10741077
7A7D6FBA1C16439400957E2E /* TestNSURLResponse.swift */,
1075-
A5A34B551C18C85D00FD972B /* TestNSByteCountFormatter.swift */,
1076-
612952F81C1B235900BE0FD9 /* TestNSNull.swift */,
1078+
C2A9D75B1C15C08B00993803 /* TestNSUUID.swift */,
1079+
5B40F9F11C125187000E72E3 /* TestNSXMLParser.swift */,
10771080
);
10781081
name = Tests;
10791082
sourceTree = "<group>";
@@ -1771,6 +1774,7 @@
17711774
EA66F6501BF1619600136161 /* TestNSNumber.swift in Sources */,
17721775
844DC3331C17584F005611F9 /* TestNSScanner.swift in Sources */,
17731776
E876A73E1C1180E000F279EC /* TestNSRange.swift in Sources */,
1777+
5E5835F41C20C9B500C81317 /* TestNSThread.swift in Sources */,
17741778
C2A9D75C1C15C08B00993803 /* TestNSUUID.swift in Sources */,
17751779
A5A34B561C18C85D00FD972B /* TestNSByteCountFormatter.swift in Sources */,
17761780
612952F91C1B235900BE0FD9 /* TestNSNull.swift in Sources */,

Foundation/NSThread.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ internal class NSThreadSpecific<T: AnyObject> {
3131
NSThreadSpecificKeyLock.lock()
3232
if !NSThreadSpecificKeySet {
3333
withUnsafeMutablePointer(&NSThreadSpecificKey) { key in
34-
NSThreadSpecificKeySet = pthread_key_create(key, disposeTLS) != 0
34+
NSThreadSpecificKeySet = pthread_key_create(key, disposeTLS) == 0
3535
}
3636
}
3737
NSThreadSpecificKeyLock.unlock()

TestFoundation/TestNSThread.swift

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// This source file is part of the Swift.org open source project
2+
//
3+
// Copyright (c) 2014 - 2015 Apple Inc. and the Swift project authors
4+
// Licensed under Apache License v2.0 with Runtime Library Exception
5+
//
6+
// See http://swift.org/LICENSE.txt for license information
7+
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
8+
//
9+
10+
11+
#if DEPLOYMENT_RUNTIME_OBJC || os(Linux)
12+
import Foundation
13+
import XCTest
14+
#else
15+
import SwiftFoundation
16+
import SwiftXCTest
17+
#endif
18+
19+
20+
class TestNSThread : XCTestCase {
21+
var allTests : [(String, () -> Void)] {
22+
return [
23+
("test_currentThread", test_currentThread ),
24+
]
25+
}
26+
27+
func test_currentThread() {
28+
let thread1 = NSThread.currentThread()
29+
let thread2 = NSThread.currentThread()
30+
XCTAssertNotNil(thread1)
31+
XCTAssertNotNil(thread2)
32+
XCTAssertEqual(thread1, thread2)
33+
}
34+
}

TestFoundation/main.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ XCTMain([
4545
TestNSScanner(),
4646
TestNSSet(),
4747
TestNSString(),
48+
TestNSThread(),
4849
TestNSTimeZone(),
4950
TestNSURL(),
5051
TestNSURLComponents(),

0 commit comments

Comments
 (0)