mutter/clutter
Emmanuele Bassi 0da0e5122e main: Do not release the lock if it hasn't been acquired
On various systems, trying to release a mutex that hasn't been acquired
will result in a run-time error.

In order to avoid this, we trylock() the Big Clutter Lock™ and
immediately unlock() it, regardless of the result; if the lock was
already acquired, trylock() will immediately fail, and we can release
it; if the lock was not acquired, trylock() will succeed, and we can
release the lock immediately.

This is necessary to maintain binary compatibility and invariants for
Clutter applications doing:

  clutter_init()
  clutter_threads_enter()
  ...
  clutter_main()
  ...
  clutter_threads_leave()

instead of the correct:

  clutter_init()
  clutter_threads_enter()
  ...
  clutter_threads_leave()
  clutter_main()
  clutter_threads_enter()
  ...
  clutter_threads_leave()

With Clutter ≥ 1.12, the idiomatic form is:

  clutter_init()
  ...
  clutter_main()

given that the public Big Clutter Lock™ acquire/release API has been
deprecated, and nobody should take the lock outside of Clutter itself.

https://bugzilla.gnome.org/show_bug.cgi?id=679439
2012-10-05 17:36:06 +01:00
..
cally actor: Add :z-position and deprecate :depth 2012-07-11 13:22:19 +01:00
cex100 docs: fix some headers paths 2011-11-10 19:05:39 +01:00
cogl Clean up deprecated header inclusion 2012-06-23 08:23:11 +01:00
deprecated actor: Deprecate Geometry-related API 2012-08-10 15:05:43 +01:00
egl Include cogl/cogl-egl.h from clutter-egl-headers.h 2012-09-03 15:58:17 +01:00
evdev evdev: Swap the numbers for the middle and right buttons 2012-09-03 21:58:25 +01:00
gdk gdk: Fix include 2012-09-03 22:34:52 +01:00
osx stage: Remove tracking input devices, it's not used 2012-09-03 21:50:19 +01:00
tslib Deprecate clutter_threads_enter()/leave() 2012-07-11 13:22:19 +01:00
wayland Deprecate clutter_threads_enter()/leave() 2012-07-11 13:22:19 +01:00
win32 stage: Remove tracking input devices, it's not used 2012-09-03 21:50:19 +01:00
x11 x11: set the stage for core events with no associated stage 2012-09-24 17:08:24 +01:00
abicheck.sh build: Make abicheck.sh backend-aware 2012-02-23 17:32:32 +00:00
clutter-action.c docs: Description fixes for Action and Constraint 2010-05-26 14:09:24 +01:00
clutter-action.h ClutterActor: Add clutter_actor_has_actions 2011-09-29 19:34:32 +02:00
clutter-actor-box.c Move towards an alloc/init pair for base types 2012-04-27 12:30:47 +01:00
clutter-actor-meta-private.h ClutterActor: Add clutter_actor_has_effects 2011-09-29 19:34:24 +02:00
clutter-actor-meta.c clutter-actor-meta: Fix _clutter_meta_group_has_metas_no_internal 2011-10-01 12:40:11 +02:00
clutter-actor-meta.h docs: Documentation fixes 2012-02-23 12:01:11 +00:00
clutter-actor-private.h actor: Add the :child-transform property 2012-08-19 17:23:26 +01:00
clutter-actor.c actor: Fix transform-set condition 2012-09-25 09:12:54 +01:00
clutter-actor.h actor: Add the :child-transform property 2012-08-19 17:23:26 +01:00
clutter-align-constraint.c constraints: Clamp updated allocation to the nearest pixel 2012-06-27 21:28:01 +01:00
clutter-align-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-animatable.c animatable: Disable deprecation warnings 2012-04-27 14:21:56 +01:00
clutter-animatable.h Deprecate ClutterAnimation, as well as clutter_actor_animate() 2012-04-27 12:30:48 +01:00
clutter-backend-private.h clutter-backend: Use the Cogl main loop mechanism 2012-02-09 16:34:25 +00:00
clutter-backend.c backend: Include deprecated header 2012-08-12 19:21:22 +01:00
clutter-backend.h Loosen the guard around clutter_backend_get_cogl_context 2012-02-21 17:46:11 +00:00
clutter-base-types.c Add interpolation for matrices 2012-09-03 20:54:43 +01:00
clutter-bezier.c debug: Clean up debugging notes 2011-10-17 10:24:25 +01:00
clutter-bezier.h
clutter-bin-layout.c bin-layout: Fix text direction checks 2012-09-19 11:40:33 +01:00
clutter-bin-layout.h bin-layout: Deprecate BinLayout alignments 2012-04-27 12:30:49 +01:00
clutter-bind-constraint.c constraints: Clamp updated allocation to the nearest pixel 2012-06-27 21:28:01 +01:00
clutter-bind-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-binding-pool.c introspection: assorted annotation fixes ported from Vala 2012-06-12 17:44:16 -07:00
clutter-binding-pool.h docs: Document user_data argument for BindingActionFunc 2012-06-10 23:34:47 +01:00
clutter-blur-effect.c blur-effect: Fix the blur filter 2012-09-03 21:18:43 +01:00
clutter-blur-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-box-layout.c ClutterBoxLayout: Blessing with proper h4w geometry management 2012-08-20 17:52:38 +01:00
clutter-box-layout.h box-layout: Deprecate expand/fill/align child properties 2012-06-04 16:16:41 +02:00
clutter-brightness-contrast-effect.c brightness-contrast-effect: Don't actually run if it will have no effect 2012-09-03 05:02:48 -03:00
clutter-brightness-contrast-effect.h Add brightness/contrast effect 2012-03-07 14:02:55 +00:00
clutter-cairo.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-cairo.h Deprecate ClutterCairoTexture 2012-04-27 12:28:49 +01:00
clutter-canvas.c canvas: Propagate Cairo errors when diagnostic mode is enabled 2012-06-14 14:57:28 +01:00
clutter-canvas.h Annotate functionality added in 1.10 2012-03-16 17:30:26 +00:00
clutter-child-meta.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-child-meta.h docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-click-action.c click-action: add touch event support 2012-09-13 11:59:08 +02:00
clutter-click-action.h action: fix CLUTTER_GESTURE_ACTION_GET_CLASS() 2012-09-11 23:05:15 +02:00
clutter-clone.c clone: Do not use get_allocation_geometry() 2012-08-10 15:05:43 +01:00
clutter-clone.h Avoid the shadowing of 'clone' 2011-10-19 15:23:55 +01:00
clutter-cogl-compat.h Reduce our internal dependence on the Cogl 1.x api 2012-02-21 17:46:11 +00:00
clutter-color-static.h static-colors: Simplify the defines 2011-09-05 17:22:14 +01:00
clutter-color.c color: Simplify shade() implementation 2012-09-06 12:15:28 +01:00
clutter-color.h color: Add initializers for ClutterColor 2012-04-27 12:30:47 +01:00
clutter-colorize-effect.c Pass a CoglContext when calling cogl_pipeline_new 2012-02-21 17:46:11 +00:00
clutter-colorize-effect.h clutter-color-size-effect: Fix a minor typo in the docs 2011-02-16 14:11:59 +00:00
clutter-config.h.in build: Generate an instealled config header 2011-01-19 14:33:27 +00:00
clutter-config.h.win32 clutter-config.h.win32: Add CLUTTER_INPUT_NULL 2011-11-14 13:33:04 +08:00
clutter-config.h.win32_GDK Visual C++ support: Add support to build GDK backend 2012-05-14 16:18:13 +08:00
clutter-constraint.c Move examples from tests/interactive to a new top-level 2012-05-01 19:00:35 +01:00
clutter-constraint.h ClutterActor: Add clutter_actor_has_contraints 2011-09-29 19:34:31 +02:00
clutter-container.c Use G_VALUE_INIT instead of { 0, } 2012-03-17 16:40:55 +00:00
clutter-container.h Deprecate the old raise/lower API 2012-01-16 23:37:13 +00:00
clutter-content-private.h content: Make get_preferred_size() public 2012-03-16 12:33:37 +00:00
clutter-content.c canvas: Add canvas size to the ::draw signal 2012-03-16 12:33:37 +00:00
clutter-content.h Annotate functionality added in 1.10 2012-03-16 17:30:26 +00:00
clutter-debug.h debug: Simple whitespace cleanups 2011-11-18 17:54:19 +00:00
clutter-deform-effect.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-deform-effect.h build: Re-arrange headers 2010-11-18 18:23:49 +00:00
clutter-deprecated.h input-device: add enter/leave events generation for touch events 2012-07-17 21:49:26 +01:00
clutter-desaturate-effect.c Pass a CoglContext when calling cogl_pipeline_new 2012-02-21 17:46:11 +00:00
clutter-desaturate-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-device-manager-private.h input-device: don't reset a device's stage until all touch points are gone 2012-09-03 21:50:24 +01:00
clutter-device-manager.c input-device: add enter/leave events generation for touch events 2012-07-17 21:49:26 +01:00
clutter-device-manager.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-drag-action.c drag-action: Allow destroying the dragged actor inside ::drag-end 2012-09-17 19:54:27 +01:00
clutter-drag-action.h ClutterDragAction: allow constraining the movement of the dragged actor 2012-08-16 18:21:07 +02:00
clutter-drop-action.c drag/drop actions: add touch event support 2012-06-22 21:40:08 +01:00
clutter-drop-action.h docs: Document ClutterDropAction 2011-06-20 15:25:54 +01:00
clutter-easing.c timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-easing.h timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-effect-private.h effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-effect.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-effect.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-enums.h pan-action: add PanAction, to handle panning in scrollable actors 2012-08-28 10:11:16 -03:00
clutter-event-private.h x11: Add support for touch events 2012-03-19 14:29:24 +00:00
clutter-event-translator.c event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event-translator.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event.c event: Expose is-pointer-emulated flag 2012-07-18 17:14:18 -04:00
clutter-event.h event: Expose is-pointer-emulated flag 2012-07-18 17:14:18 -04:00
clutter-feature.c Fix missing/redundant declarations 2012-03-07 12:36:43 +00:00
clutter-feature.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-fixed-layout.c fixed-layout: Remove the NO_LAYOUT flag set 2012-01-27 15:45:11 +00:00
clutter-fixed-layout.h [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-flatten-effect.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flatten-effect.h clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flow-layout.c Revert "flow-layout: Implement layout animations" 2012-07-11 13:22:21 +01:00
clutter-flow-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-gesture-action.c docs: Fix typo in closing tag 2012-09-24 17:21:36 +01:00
clutter-gesture-action.h gesture-action: add gesture_prepare() virtual function 2012-09-06 12:16:08 +01:00
clutter-grid-layout.c grid-layout: Remove layout animations 2012-07-11 13:22:21 +01:00
clutter-grid-layout.h Add ClutterGridLayout 2012-06-05 12:28:25 +02:00
clutter-group.h Deprecate ClutterGroup 2012-01-16 23:35:16 +00:00
clutter-id-pool.c clutter-id-pool: fix warning on bad pick 2011-05-26 08:48:13 -04:00
clutter-id-pool.h Privatize all ClutterIdPool functions 2011-02-18 15:53:27 +00:00
clutter-image.c image: Use the actor's content repeat policy 2012-06-08 14:33:00 +01:00
clutter-image.h image: Add a data setter using GBytes 2012-06-04 10:34:22 +01:00
clutter-input-device.c input-device: print device number in debug messages 2012-09-24 17:04:08 +01:00
clutter-input-device.h input-device: add enter/leave events generation for touch events 2012-07-17 21:49:26 +01:00
clutter-interval.c Clean up deprecated header inclusion 2012-06-23 08:23:11 +01:00
clutter-interval.h interval: Add is_valid() method 2012-06-08 17:32:51 +01:00
clutter-keyframe-transition.c keyframe-transition: Create a new interval if necessary 2012-05-15 17:41:24 +02:00
clutter-keyframe-transition.h keyframe-transition: Add direct accessors for key frames 2012-04-27 12:30:48 +01:00
clutter-keysyms-table.c Fix missing/redundant declarations 2012-03-07 12:36:43 +00:00
clutter-keysyms-update.pl keysyms-update: Add deprecation guards to the deprecated header 2012-06-11 13:46:38 +01:00
clutter-keysyms.h Update keysyms headers 2012-06-11 13:47:29 +01:00
clutter-layout-manager.c Split off LayoutManager deprecated functions to a separate file 2012-07-18 17:23:35 -04:00
clutter-layout-manager.h Revert "layout-manager: Add a new animation API" 2012-07-11 13:22:21 +01:00
clutter-layout-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-layout-meta.h docs: Annotation fixes 2012-04-30 17:17:41 +01:00
clutter-list-model.c Use G_VALUE_INIT instead of { 0, } 2012-03-17 16:40:55 +00:00
clutter-list-model.h
clutter-macros.h docs: Annotation fixes 2012-04-30 17:17:41 +01:00
clutter-main.c main: Do not release the lock if it hasn't been acquired 2012-10-05 17:36:06 +01:00
clutter-main.h Deprecate clutter_threads_enter()/leave() 2012-07-11 13:22:19 +01:00
clutter-marshal.list pan-action: add PanAction, to handle panning in scrollable actors 2012-08-28 10:11:16 -03:00
clutter-master-clock.c Deprecate clutter_threads_enter()/leave() 2012-07-11 13:22:19 +01:00
clutter-master-clock.h timeline: Add an internal function for advancing a timeline 2012-04-27 12:30:48 +01:00
clutter-model-private.h Mark internal symbol as private 2012-02-09 18:40:03 +00:00
clutter-model.c Use G_VALUE_INIT instead of { 0, } 2012-03-17 16:40:55 +00:00
clutter-model.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-offscreen-effect-private.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-offscreen-effect.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-offscreen-effect.h Annotate all functions available since 1.10 2012-02-27 16:35:09 +00:00
clutter-page-turn-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-page-turn-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-paint-node-private.h paint-node: Initialize ClutterPaintOperation 2012-03-20 16:19:23 +00:00
clutter-paint-node.c paint-node: Initialize ClutterPaintOperation 2012-03-20 16:19:23 +00:00
clutter-paint-node.h Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-paint-nodes.c docs: Fix typo in the <structname> tag 2012-04-30 17:45:01 +01:00
clutter-paint-nodes.h Annotate functionality added in 1.10 2012-03-16 17:30:26 +00:00
clutter-paint-volume-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-paint-volume.c actor: Deprecate Geometry-related API 2012-08-10 15:05:43 +01:00
clutter-pan-action.c pan-action: emit ::pan-stopped before ::gesture-begin 2012-09-06 12:16:09 +01:00
clutter-pan-action.h action: fix CLUTTER_GESTURE_ACTION_GET_CLASS() 2012-09-11 23:05:15 +02:00
clutter-path-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-path-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-path.c path: Avoid integer overflow in get_distance() 2012-04-27 12:28:49 +01:00
clutter-path.h Move PathNode definitions into clutter-types.h 2012-06-23 08:23:11 +01:00
clutter-private.h Add interpolation for matrices 2012-09-03 20:54:43 +01:00
clutter-profile.c debug: Clean up profile/debug symbols 2011-11-18 17:44:42 +00:00
clutter-profile.h Fix fallback profile counter macro 2012-03-22 12:00:55 +00:00
clutter-property-transition.c property-transition: Lazily convert the interpolated value 2012-06-18 22:21:14 +01:00
clutter-property-transition.h property-transition: Remove animatable from the ctor 2012-03-20 11:59:32 +00:00
clutter-rotate-action.c rotate-action: fix wrong marshaller usage 2012-08-27 14:05:44 +01:00
clutter-rotate-action.h action: fix CLUTTER_GESTURE_ACTION_GET_CLASS() 2012-09-11 23:05:15 +02:00
clutter-script-parser.c Deprecate ClutterAlpha 2012-04-27 12:30:50 +01:00
clutter-script-private.h script: Support ClutterPoint and ClutterSize 2012-04-27 12:30:46 +01:00
clutter-script.c Clean up deprecated header inclusion 2012-06-23 08:23:11 +01:00
clutter-script.h Deprecate State and Animator 2012-04-27 12:30:48 +01:00
clutter-scriptable.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-scriptable.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-scroll-actor.c scroll-actor: Check for point equality in the internal setter 2012-05-18 18:00:30 +01:00
clutter-scroll-actor.h Add ClutterScrollActor 2012-04-27 12:30:50 +01:00
clutter-settings-private.h Add more sections to the Clutter configuration file 2011-10-11 17:52:17 +01:00
clutter-settings.c Fix missing/redundant declarations 2012-03-07 12:36:43 +00:00
clutter-settings.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-shader-effect.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-shader-effect.h clutter-shader-effect: Add a get_static_shader_source virtual 2011-09-30 11:51:37 +01:00
clutter-shader-types.c introspection: assorted annotation fixes ported from Vala 2012-06-12 17:44:16 -07:00
clutter-shader-types.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-snap-constraint.c snap-constraint: Fix typo that broke the get_edges() method 2012-03-07 12:36:43 +00:00
clutter-snap-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-stage-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-stage-manager.c Fix missing/redundant declarations 2012-03-07 12:36:43 +00:00
clutter-stage-manager.h Add deprecated header for ClutterStageManager 2012-02-27 15:21:32 +00:00
clutter-stage-private.h stage: Remove tracking input devices, it's not used 2012-09-03 21:50:19 +01:00
clutter-stage-window.c Make clutter-stage-window.h a private header 2012-03-01 15:07:44 +00:00
clutter-stage-window.h Make clutter-stage-window.h a private header 2012-03-01 15:07:44 +00:00
clutter-stage.c stage: fix typo and format identifiers in debug notes 2012-09-13 12:09:30 +02:00
clutter-stage.h Clean up the included headers 2012-02-23 17:21:57 +00:00
clutter-swipe-action.c swipe-action: Remove the required devices call 2011-06-10 15:15:15 +01:00
clutter-swipe-action.h action: fix CLUTTER_GESTURE_ACTION_GET_CLASS() 2012-09-11 23:05:15 +02:00
clutter-table-layout.c Fix clutter_table_layout_pack row/column count incrementation. 2012-08-27 16:23:34 +01:00
clutter-table-layout.h table: Deprecate the align, expand, and fill layout properties 2012-06-08 12:05:50 +01:00
clutter-text-buffer.c text-buffer: Fix the Since annotations 2012-01-17 14:29:45 +00:00
clutter-text-buffer.h Annotate all functions available since 1.10 2012-02-27 16:35:09 +00:00
clutter-text.c text: Don't accept new line characters in single line mode 2012-09-09 23:48:46 +02:00
clutter-text.h Annotate all functions available since 1.10 2012-02-27 16:35:09 +00:00
clutter-texture.h Deprecate ClutterTexture's API 2012-07-11 13:22:21 +01:00
clutter-timeline.c timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-timeline.h timeline: Add cubic-bezier() progress functions 2012-07-19 22:13:24 -04:00
clutter-transition-group.c Add ClutterTransitionGroup 2012-04-27 12:30:48 +01:00
clutter-transition-group.h Add ClutterTransitionGroup 2012-04-27 12:30:48 +01:00
clutter-transition.c transition: Check if we're setting the same interval 2012-06-18 23:00:08 +01:00
clutter-transition.h transition: Add interval convenience API 2012-04-27 12:30:47 +01:00
clutter-types.h Add interpolation for matrices 2012-09-03 20:54:43 +01:00
clutter-units.c Fixes for the API reference 2012-04-27 12:30:48 +01:00
clutter-units.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-util.c Add interpolation for matrices 2012-09-03 20:54:43 +01:00
clutter-version.h.in docs: Annotation fixes 2012-04-30 17:17:41 +01:00
clutter-zoom-action.c Add zoom action 2012-08-20 18:28:22 +01:00
clutter-zoom-action.h Add zoom action 2012-08-20 18:28:22 +01:00
clutter.h pan-action: add PanAction, to handle panning in scrollable actors 2012-08-28 10:11:16 -03:00
clutter.pc.in build: Add infrastructure for inserting Requires.private into pkg-config files 2012-01-11 12:23:46 +00:00
clutter.symbols x11: Add EventSequence → touch detail accessor 2012-09-05 09:43:47 +01:00
config.h.win32.in build: Move config.h under clutter/ 2012-07-30 10:54:18 +01:00
Makefile.am pan-action: add PanAction, to handle panning in scrollable actors 2012-08-28 10:11:16 -03:00