> On Sep 26, 2015, at 10:51 AM, Programmingkid <programmingk...@gmail.com> 
> wrote:
> 
> When I click on a menu, the application pauses. That seems pretty much like a 
> smoking gun that things haven't changed much with the Mac OS.

“The application pauses” is a pretty vague statement. If you’ve got a periodic 
task on the main runloop, driven by an NSTimer or a delayed-perform, then just 
make sure to specify that it runs in NSEventTrackingRunloopMode, as Eric said. 
The default runloop mode doesn’t get time during this kind of event tracking, 
to avoid problems like alerts popping up while you’re dragging a slider or 
selecting text.

Things with the OS have actually changed a great deal. Believe me, I was there 
during the transition. The way the ‘classic’ OS worked was entirely different — 
there was no threading to speak of, and pulling down a menu literally put the 
_entire OS_ into a tight loop where it waited for the mouse to move and drew 
menus. The app couldn’t handle events or get any time at all; in fact no 
running app could do anything at all.

(Yes, there were interrupt-level tasks, and later on the “Thread Manager” which 
allowed pre-emptive threads. But the set of things you could do from there was 
extremely limited: pure computation and — if you were very, very careful — 
limited file I/O or networking. You couldn’t even use regular malloc/free on a 
background task, because almost nothing in the OS was thread-safe. IT WAS HELL. 
It was a toy operating system compared to anything that exists today, except 
for maybe Arduinos.)

—Jens
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to