Home      Discussion      Topics      Dictionary      Almanac
Signup       Login
Spinning wait cursor

Spinning wait cursor

Overview
The spinning wait cursor is a cursor in Apple
Apple Computer
Apple Inc. is an American multinational corporation that designs and manufactures consumer electronics and computer software products. The company's best-known hardware products include Macintosh computers, the iPod and the iPhone...

's Mac OS X
Mac OS X
Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems...

 that indicates an application
Application software
Application software is a computer program that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a...

 is not responding to system events. It is similar to the "not responding" status in the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 task manager.

The Apple Human Interface Guidelines officially refer to it as the "spinning wait cursor"; its colloquial names include "hypnowheel", "spinning starlight mint of doom", "pride swirl", "spinning pizza", "spinning pinwheel", "pinwheel of death", "rainbow ball of doom", "The Wheel of Misfortune", "the beach ball of hell", "spinning beach ball of death", "Spinning beach ball of impending doom", "spinning wheel of death", "colorful wheel of thought", "rainbow wheel of death", and "marble of doom".
Discussion
Ask a question about 'Spinning wait cursor'
Start a new discussion about 'Spinning wait cursor'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
The spinning wait cursor is a cursor in Apple
Apple Computer
Apple Inc. is an American multinational corporation that designs and manufactures consumer electronics and computer software products. The company's best-known hardware products include Macintosh computers, the iPod and the iPhone...

's Mac OS X
Mac OS X
Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems...

 that indicates an application
Application software
Application software is a computer program that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a...

 is not responding to system events. It is similar to the "not responding" status in the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces...

 task manager.

The Apple Human Interface Guidelines officially refer to it as the "spinning wait cursor"; its colloquial names include "hypnowheel", "spinning starlight mint of doom", "pride swirl", "spinning pizza", "spinning pinwheel", "pinwheel of death", "rainbow ball of doom", "The Wheel of Misfortune", "the beach ball of hell", "spinning beach ball of death", "Spinning beach ball of impending doom", "spinning wheel of death", "colorful wheel of thought", "rainbow wheel of death", and "marble of doom". The suffix "of death" in these names is a reference to Microsoft Windows' Blue Screen of Death
Blue Screen of Death
The Blue Screen of Death is a colloquialism used for the error screen displayed by some operating systems, most notably Microsoft Windows, after encountering a critical system error which can cause the system to shut down to prevent irreversable damage...

 (BSOD), which also leads to the acronym "SPOD" for "spinning pizza of death," commonly used in mailing lists such as Mac-L. The suffix 'of doom' is also commonly used.

History


A wrist-watch
Watch
A watch is a timepiece that is made to be worn on a person. It is usually a wristwatch, worn on the wrist with a strap or bracelet. In addition to the time, modern watches often display the day, date, month and year, and electronic watches may have many other functions.Most inexpensive and...

 was the first "wait" cursor in early versions of Mac OS
Mac OS
Mac OS is the trademarked name for a series of graphical user interface-based operating systems developed by Apple Inc. for their Macintosh line of computer systems. The Macintosh user experience is credited with popularizing the graphical user interface...

. Apple's HyperCard
HyperCard
HyperCard is an application program created by Bill Atkinson for Apple Computer, Inc. that was among the first successful hypermedia systems before the World Wide Web. It combines database capabilities with a graphical, flexible, user-modifiable interface...

 first popularized animated cursors, including a spinning beach ball
Beach ball
A beach ball is an inflatable ball for beach and water games. Their large size and light weight take little effort to propel; they travel very slowly and generally must be caught with two hands, making them ideal for lazy games and for children...

 which could be advanced by repeated HyperTalk
HyperTalk
HyperTalk is a high-level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. The main target audience of HyperTalk was beginning programmers, hence HyperTalk programmers were usually called...

 invocations of "set cursor to busy". The beach ball cursor was also adopted to indicate running script code in the HyperTalk-like AppleScript
AppleScript
AppleScript is a scripting language devised by Apple Inc., and built into Mac OS. More generally, "AppleScript" is the word used to designate the Mac OS scripting interface, which is meant to operate in parallel with the graphical user interface.- History :...

.

These cursors would be activated by an application when it was performing a lengthy operation. (Microsoft Windows would later adopt Apple's Lisa hourglass cursor for the same concept.) Some versions of the Apple Installer used an animated "counting hand" cursor; other applications provided their own theme-appropriate custom cursors, such as Fetch's running dog and Retrospect's spinning tape. Apple provided standard interfaces for animating cursors: originally the Cursor Utilities (SpinCursor, RotateCursor) and, in Mac OS 8
Mac OS 8
Mac OS 8 is an operating system that was released by Apple Computer on July 26 1997. It represented the largest overhaul of the Mac OS since the release of System 7, some six years previously. Released over a series of updates, Mac OS 8 was an effort to integrate many of the technologies developed...

 and later, the Appearance Manager (SetAnimatedThemeCursor).

In Mac OS X, Apple gave the wheel rainbow colors and a more dynamic appearance. More significantly, Apple changed its meaning. Rather than being an indication that an application was performing an action it expected to take a while, it meant that the system software had noticed that an application had stopped responding to events. This could indicate that the application was in an infinite loop
Infinite loop
An infinite loop is a sequence of instructions in a computer program which loops endlessly, either due to the loop having no terminating condition, having one that can never be met, or one that causes the loop to start over. In older operating systems with cooperative multitasking, infinite loops...

, or just performing a lengthy operation and ignoring events.

Like many other Mac OS 9 to Mac OS X changes, this new wait cursor originated with NEXTSTEP
NEXTSTEP
NeXTSTEP was the object-oriented, multitasking operating system developed by NeXT Computer to run on its range of proprietary workstation computers, such as the NeXTcube, and later, other computer architectures.Nextstep 1.0 was released on September 18, 1989, after several previews starting in 1986...

 which eventually became the basis for Mac OS X.

Detailed explanation


Each application has an event queue which receives events from the operating system (for example key presses and mouse button clicks). If an application takes too long to process the events in its event queue (regardless of the exact cause) the operating system displays the wait cursor whenever the cursor hovers over that application's windows. This threshold is 5 seconds in Mac OS X v10.4
Mac OS X v10.4
Mac OS X version 10.4 “Tiger” is the fifth major release of Mac OS X, Apple’s desktop and server operating system for Macintosh computers. Tiger was released to the public on 29 April 2005 for US$129.95 as the successor to Mac OS X v10.3 “Panther”, which had been released 18 months earlier...

, but was previously 2 seconds.

This is meant to indicate that the application is temporarily unresponsive, a state from which the application may recover, however it may also indicate that the application has entered an unrecoverable state. Users can choose to terminate an unresponsive application, by using "Force Quit" under the Apple menu, the keystroke command-option-escape, or the Force Quit command found by option-clicking the icon of an unresponsive application icon in the Dock.

While one application is unresponsive, typically other applications are usable in the meantime and may be used until the former becomes responsive again.

Guidelines, tools and methods for developers


Apple's guidelines suggest that developers try to avoid the spinning wait cursor, and suggest other user interface
User interface
The user interface is the aggregate of means by which people—the users—interact with the system—a particular machine, device, computer program or other complex tool...

 indicators, such as an asynchronous progress indicator
Progress indicator
A progress indicator is an element of a command line interface, a textual user interface, or a graphical user interface that is intended to inform the user that an operation is in progress, to reassure that the system is not hung or waiting for user input,...

.
Possible causes include:
  • By default, events (and any actions they initiate) are processed sequentially. This design works well when each event leads to only a trivial amount of processing, which causes the application to appear responsive. However, if the processing takes a longer amount of time, the spinning wait cursor will appear until the operation is complete. Developers may prevent this happening by performing processing on a separate thread, allowing the application's main thread to continue responding to events. However, this greatly increases the application complexity.
  • Bugs in applications can cause them to stop responding to events; for instance, an infinite loop
    Infinite loop
    An infinite loop is a sequence of instructions in a computer program which loops endlessly, either due to the loop having no terminating condition, having one that can never be met, or one that causes the loop to start over. In older operating systems with cooperative multitasking, infinite loops...

    . Applications that do this rarely recover.
  • Problems with the virtual memory
    Virtual memory
    Virtual memory is a computer system technique which gives an application program the impression that it has contiguous working memory , while in fact it may be physically fragmented and may even overflow on to disk storage. Systems that use this technique make programming of large applications...

     system such as slow paging
    Paging
    In computer operating systems there are various ways in which the operating system can store and retrieve data from secondary storage for use in main memory. One such memory management scheme is referred to as paging. In the paging memory-management scheme, the operating system retrieves data...

     caused by a spun-down hard disk
    Hard disk
    A hard disk drive is a non-volatile storage device that stores digitally encoded data on rapidly rotating platters with magnetic surfaces. Strictly speaking, "drive" refers to the motorized mechanical aspect that is distinct from its medium, such as a tape drive and its tape, or a floppy disk...

     (or, potentially, read errors) will cause the wait cursor to appear. In this case, multiple applications will display the wait cursor as they attempt to access memory that must be paged in until the hard disk and virtual memory system recover.


Spin Control is an application that comes with the Mac OS X Developer Tools. It allows the user to monitor and sample applications that are either not responding or performing a lengthy operation. Each time an application does not respond and the spinning wait cursor is activated, Spin Control will sample the application to determine which code is causing the application to stop responding. With this information, the developer can rewrite code to avoid the cursor being activated.

Developers have limited control over the behavior of the wait cursor:
  • In Carbon, the Carbon Events Manager manages the wait cursor. Excessive polling of input devices can cause the spinning wait cursor to appear, or even cause the application to hang.
  • In Cocoa, the spinning wait cursor's behavior is managed by the standard NSCursor methods.

External links