// dispatched function
static void CreateCanvasClientSync(ReentrantMonitor* aBarrier,
                                   CanvasClient::CanvasClientType aType,
                                   TextureFlags aFlags,
                                   RefPtr<CanvasClient>* const outResult,
                                   bool* aDone)
{
  ReentrantMonitorAutoEnter autoMon(*aBarrier);
  *outResult = sImageBridgeChildSingleton->CreateCanvasClientNow(aType, aFlags);
  *aDone = true;
  aBarrier->NotifyAll();
}