<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" style="font-family:Arial;font-size:10.5pt" ><div dir="ltr" >Hello</div>
<div dir="ltr" >&nbsp;</div>
<div dir="ltr" ><p><b>Code snippet:</b></p>
<p>———————————————————————</p>
<p>&nbsp;&nbsp; &nbsp; let operation1 : NSBlockOperation = NSBlockOperation (block: {</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print("Opertion1")</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; })</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; let operation2 : NSBlockOperation = NSBlockOperation (block: {</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sleep(1)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print("Opertion2”)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; })</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; var operations = [NSOperation]()</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; operations.append(operation1)</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; operations.append(operation2)</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; let queue = NSOperationQueue()</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; queue.maxConcurrentOperationCount = 1</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; queue.addOperations(operations, waitUntilFinished: true)</p>
<p>&nbsp;</p>
<p>————————————————————————&nbsp;</p>
<p>&nbsp;</p>
<p>The above code snippet of adding operations to an operation queue and executing with the property ‘maxConcurrentOperationCount = 1’ fails while executing the above with the OpenSource Foundation and libDispatch of MAC inside Xcode.&nbsp;</p>
<p>The error I am seeing is:&nbsp;</p>
<p><b>fatal error: unexpectedly found nil while unwrapping an Optional value</b></p>
<p><b>Stack trace points to: </b>attr = DISPATCH_QUEUE_SERIAL&nbsp;</p>
<p>which implies that the libDispatch macro is coming as nil during the creation of the serial queue using libDispatch in the file&nbsp;NSOperationQueue</p>
<p>The same test-case passes on OSx.&nbsp;</p>
<p>When I do not restrict the serial operation i.e. I remove ‘&nbsp; queue.maxConcurrentOperationCount = 1’ , test case executes successfully.&nbsp;</p>
<p>Setting it to a different value other than 1 also causes no problems.&nbsp;</p>
<p>Am I doing something wrong with the API. If I set the property ‘ queue.maxConcurrentOperationCount = 1’ after adding operations to the queue, then the problem does not occur. But then this restricts me to control the operation execution to be serial. So, I expect the above snippet to work on OpenSource as well. Any thoughts on this?</p>
<div>&nbsp;</div>
<div>Thank you.</div>
<div>&nbsp;</div>
<div>Regards</div>
<div>Mamatha</div>
<p>&nbsp;</p></div></div></div><BR>