Commit a94f10ec authored by Ian Craggs's avatar Ian Craggs

MacOS updates for threading

parent 5db08261
...@@ -164,11 +164,12 @@ END_GROUP = ...@@ -164,11 +164,12 @@ END_GROUP =
EXTRA_LIB = -ldl EXTRA_LIB = -ldl
CCFLAGS_SO += -Wno-deprecated-declarations -DUSE_NAMED_SEMAPHORES CCFLAGS_SO += -Wno-deprecated-declarations -DOSX
LDFLAGS_C += -Wl,-install_name,lib$(MQTTLIB_C).so.${MAJOR_VERSION} LDFLAGS_C += -Wl,-install_name,lib$(MQTTLIB_C).so.${MAJOR_VERSION}
LDFLAGS_CS += -Wl,-install_name,lib$(MQTTLIB_CS).so.${MAJOR_VERSION} LDFLAGS_CS += -Wl,-install_name,lib$(MQTTLIB_CS).so.${MAJOR_VERSION}
LDFLAGS_A += -Wl,-install_name,lib${MQTTLIB_A}.so.${MAJOR_VERSION} LDFLAGS_A += -Wl,-install_name,lib${MQTTLIB_A}.so.${MAJOR_VERSION}
LDFLAGS_AS += -Wl,-install_name,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} LDFLAGS_AS += -Wl,-install_name,lib${MQTTLIB_AS}.so.${MAJOR_VERSION}
FLAGS_EXE += -DOSX
endif endif
......
...@@ -234,7 +234,7 @@ int Thread_wait_sem(sem_type sem, int timeout) ...@@ -234,7 +234,7 @@ int Thread_wait_sem(sem_type sem, int timeout)
#if defined(WIN32) || defined(WIN64) #if defined(WIN32) || defined(WIN64)
rc = WaitForSingleObject(sem, timeout); rc = WaitForSingleObject(sem, timeout);
#elif defined(OSX) #elif defined(OSX)
rc = (int)dispatch_semaphore_wait(sem, dispatch_time(DISPATCH_TIME_NOW, timeout*1000)); rc = (int)dispatch_semaphore_wait(sem, dispatch_time(DISPATCH_TIME_NOW, (int64_t)timeout*1000000L));
#elif defined(USE_TRYWAIT) #elif defined(USE_TRYWAIT)
while (++i < count && (rc = sem_trywait(sem)) != 0) while (++i < count && (rc = sem_trywait(sem)) != 0)
{ {
......
""" """
******************************************************************* *******************************************************************
Copyright (c) 2013, 2016 IBM Corp. Copyright (c) 2013, 2017 IBM Corp.
All rights reserved. This program and the accompanying materials All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0 are made available under the terms of the Eclipse Public License v1.0
...@@ -45,7 +45,8 @@ class MyHandler(socketserver.StreamRequestHandler): ...@@ -45,7 +45,8 @@ class MyHandler(socketserver.StreamRequestHandler):
clients = self.request clients = self.request
brokers = socket.socket(socket.AF_INET, socket.SOCK_STREAM) brokers = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
brokers.connect((brokerhost, brokerport)) brokers.connect((brokerhost, brokerport))
while inbuf != None: terminated = False
while inbuf != None and not terminated:
(i, o, e) = select.select([clients, brokers], [], []) (i, o, e) = select.select([clients, brokers], [], [])
for s in i: for s in i:
if s == clients: if s == clients:
...@@ -60,6 +61,7 @@ class MyHandler(socketserver.StreamRequestHandler): ...@@ -60,6 +61,7 @@ class MyHandler(socketserver.StreamRequestHandler):
print("Terminating client", self.ids[id(clients)]) print("Terminating client", self.ids[id(clients)])
brokers.close() brokers.close()
clients.close() clients.close()
terminated = True
break break
elif packet.fh.MessageType == MQTTV3.CONNECT: elif packet.fh.MessageType == MQTTV3.CONNECT:
self.ids[id(clients)] = packet.ClientIdentifier self.ids[id(clients)] = packet.ClientIdentifier
......
...@@ -955,7 +955,7 @@ int test6(struct Options options) ...@@ -955,7 +955,7 @@ int test6(struct Options options)
opts.keepAliveInterval = 2; opts.keepAliveInterval = 2;
opts.cleansession = 1; opts.cleansession = 1;
opts.MQTTVersion = options.MQTTVersion; opts.MQTTVersion = MQTTVERSION_3_1_1;
opts.will = &wopts; opts.will = &wopts;
opts.will->message = test6_will_message; opts.will->message = test6_will_message;
opts.will->qos = 1; opts.will->qos = 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment