summaryrefslogtreecommitdiff
path: root/doc/vfs-thread.txt
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 21:26:09 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 21:26:09 +0100
commit7947d959db2a84860cdfd479d95ea5b30fdba051 (patch)
tree4cc2ec4d16ee75d338f85d966b089ca5a0240097 /doc/vfs-thread.txt
parent2786d0238b25d7bcc1408bb1a45a8f7f4bd1febd (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'doc/vfs-thread.txt')
-rw-r--r--doc/vfs-thread.txt110
1 files changed, 0 insertions, 110 deletions
diff --git a/doc/vfs-thread.txt b/doc/vfs-thread.txt
deleted file mode 100644
index 767ab056b..000000000
--- a/doc/vfs-thread.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-Threading problems with gnome-vfs & initialization
- + could it be gconf causing problems ?
-
-gconf_orb = CORBA_ORB_init (&argc, argv, "orbit-local-orb", &ev);
- + nope - the ORB is thread-safe by default
- + also does a g_thread_init
- => fine ...
-
-static void
-gnome_vfs_thread_init (void)
-{
- private_is_primary_thread = g_private_new (NULL);
- g_private_set (private_is_primary_thread, GUINT_TO_POINTER (1));
-
- _gnome_vfs_module_callback_private_init ();
-
- _gnome_vfs_async_job_map_init ();
- _gnome_vfs_thread_pool_init ();
- _gnome_vfs_job_queue_init ();
-}
-
-** And **
-
-gboolean
-gnome_vfs_is_primary_thread (void)
-{
- if (g_thread_supported()) {
- return GPOINTER_TO_UINT(g_private_get (private_is_primary_thread)) == 1;
- } else {
- return TRUE;
- }
-}
- + gnome_vfs_is_primary_thread not called explicitely
-
-*** URGH ***
- + #define GNOME_VFS_ASSERT_PRIMARY_THREAD g_assert (gnome_vfs_is_primary_thread())
- + #define GNOME_VFS_ASSERT_SECONDARY_THREAD g_assert (!gnome_vfs_is_primary_thread())
- + not used inside gnome-vfs itself either ...
-
-Hmm...
-
-gboolean
-gnome_vfs_init (void)
-{
- if (!g_thread_supported ())
- g_thread_init (NULL);
- gnome_vfs_thread_init ();
- if (bonobo_activation_orb_get() == NULL)
- bonobo_activation_init (0, bogus_argv);
- bonobo_init (NULL, bogus_argv);
- retval = gnome_vfs_method_init ();
- retval = _gnome_vfs_configuration_init ();
- signal (SIGPIPE, SIG_IGN);
-}
-
-=> ORB initialization ...
- + assuming we initialize the ORB 1st ...
- + that -does- store a 'primary thread' concept.
-
- + giop.c (giop_init)
- + sets 'giop_main_thread' to be the one with the
- g_main_context_default() association;
- + sets that thread's thread data to be that ...
-
-
-=> Using PostUserEvent:
-
-
-BOOL Application::PostUserEvent( ULONG& rEventId, ULONG nEvent, void* pEventData )
-{
- ImplSVEvent* pSVEvent = new ImplSVEvent;
- pSVEvent->mnEvent = nEvent;
- pSVEvent->mpData = pEventData;
- pSVEvent->mpLink = NULL;
- pSVEvent->mpWindow = NULL;
- pSVEvent->mbCall = TRUE;
- rEventId = (ULONG)pSVEvent;
- if ( ImplGetDefaultWindow()->ImplGetFrame()->PostEvent( pSVEvent ) )
- return TRUE;
- else
- {
- rEventId = 0;
- delete pSVEvent;
- return FALSE;
- }
-}
-
-->
-
-BOOL GtkSalFrame::PostEvent( void* pData )
-{
- getDisplay()->SendInternalEvent( this, pData );
- return TRUE;
-}
-
-vcl/unx/source/app/saldisp.cxx:
-void SalDisplay::SendInternalEvent( SalFrame* pFrame, void* pData, USHORT nEvent )
-{
- if( osl_acquireMutex( hEventGuard_ ) )
- {
- m_aUserEvents.push_back( SalUserEvent( pFrame, pData, nEvent ) );
-
- // Notify SalXLib::Yield() of a pending event.
- pXLib_->PostUserEvent();
-
- osl_releaseMutex( hEventGuard_ );
- }
-}
-
-+ pushes to m_aUserEvents ...