After shared objects are created on the master, the OpenGL pipeline
might need to be synchronized w/ the slaves, e.g. via GL.glFinish().
At least this has been experienced w/ OSX 10.9.

In general, destroying a masterGLContext before their shared slaves
shall be permissible, i.e. the OpenGL driver needs to handle pending destruction of shared resources.
This is confirmed to work properly on most platform/driver combinations,
see unit test com.jogamp.opengl.test.junit.jogl.acore.TestSharedContextVBOES2NEWT3 and similar.

However, to avoid scenarios with buggy drivers, users may not destroy the
masterGLContext before its shared slaveGLContext instances
as long as they are using them.
Otherwise the OpenGL driver may crash w/ SIGSEGV, due to using already destroyed shared resources,
if not handling the pending destruction of the latter!
Either proper lifecycle synchronization is implemented, e.g. by notifying the slaves about the loss of the shared resources,
or the slaves validate whether the resources are still valid.

To simplify above lifecycle issues, one may use a dummyGLDrawable and it's GLContext as the master of all shared slaveGLContext.
Since this dummy instance does not depend on any native windowing system, it can be controlled easily w/o being in sight.
Below code creates a GLAutoDrawable based on a dummy GLDrawable: