public void DelayedEval(Func <bool> func, Action action, int tries)
 {
     if (func())
     {
         action();
         return;
     }
     if (--tries < 0)
     {
         return;
     }
     OnConnectedQueue.Enqueue(() => DelayedEval(func, action, tries));
 }
Exemplo n.º 2
0
 private void RequestGroupMetadata(UUID uuid)
 {
     lock (MetadataRequested) if (!MetadataRequested.Add(uuid))
         {
             return;
         }
     OnConnectedQueue.Enqueue(() =>
     {
         // should not loop
         RequestGroupInfo(uuid);
         // WriteLine("Requesting groupInfo " + uuid);
         GridMaster.client.Groups.RequestGroupRoles(uuid);
         GridMaster.client.Groups.RequestGroupMembers(uuid);
         GridMaster.client.Groups.RequestGroupRolesMembers(uuid);
     });
 }
Exemplo n.º 3
0
 private void RequestAvatarMetadata(UUID uuid)
 {
     lock (MetadataRequested) if (!MetadataRequested.Add(uuid))
         {
             return;
         }
     DeclareAvatarProfile(uuid);
     NeedRequestAvatarName(uuid);
     OnConnectedQueue.Enqueue(() =>
     {
         client.Avatars.RequestAvatarName(uuid);
         if (MaintainAvatarMetaData)
         {
             client.Avatars.RequestAvatarProperties(uuid);
             //client.Avatars.RequestAvatarClassified(uuid);
             //client.Avatars.RequestAvatarPicks(uuid);
         }
     });
 }
 private void StartupPostLoginQueues()
 {
     lock (DidStartupPostLoginQueuesLock)
     {
         if (DidStartupPostLoginQueues)
         {
             return;
         }
         DidStartupPostLoginQueues = true;
     }
     ParentGrabber.Start();
     CatchUpQueue.Start();
     MetaDataQueue.Start();
     OnConnectedQueue.Start();
     SimAssetStore.TaskQueueStart();
     SlowConnectedQueue.Enqueue(() => SlowConnectedQueue.DebugQueue = false);
     SlowConnectedQueue.Start();
     client.OneAtATimeQueue.Start();
     TaskInvGrabber.Start();
 }