diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/GlobalOptions.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/GlobalOptions.cs index 563b56b..7ac2a02 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/GlobalOptions.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/GlobalOptions.cs @@ -53,8 +53,16 @@ namespace Acacia } private static readonly EnumOption THREADING = new EnumOption("Threading", Threading.BackgroundRespawn); - [AcaciaOption("Enables or disables ZPush account checking. To enable advanced features, it must be known " + - "which accounts use ZPush servers. This option checks responses from ActiveSync servers to " + + [AcaciaOption("Sets respawn timeout for BackgroundRespawn threading model.")] + public int ThreadingRespawnTimeout + { + get { return GetOption(null, THREADING_RESPONSE_TIMEOUT); } + set { SetOption(null, THREADING_RESPONSE_TIMEOUT, value); } + } + private static readonly IntOption THREADING_RESPONSE_TIMEOUT = new IntOption("ThreadingRespawnTimeout", 15000); + + [AcaciaOption("Enables or disables ZPush account checking. To enable advanced features, it must be known " + + "which accounts use ZPush servers. This option checks responses from ActiveSync servers to " + "identify the ZPush ones.")] public bool ZPushCheck { diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/Tasks.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/Tasks.cs index cc09b5c..0a9289e 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/Tasks.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/Tasks.cs @@ -148,7 +148,7 @@ namespace Acacia.Utils _executor = new TasksBackground(); break; case DebugOptions.Threading.BackgroundRespawn: - _executor = new TasksBackgroundRespawn(); + _executor = new TasksBackgroundRespawn(GlobalOptions.INSTANCE.ThreadingRespawnTimeout); break; } diff --git a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/TasksBackgroundRespawn.cs b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/TasksBackgroundRespawn.cs index f9addd6..8c018d6 100644 --- a/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/TasksBackgroundRespawn.cs +++ b/src/AcaciaZPushPlugin/AcaciaZPushPlugin/Utils/TasksBackgroundRespawn.cs @@ -28,10 +28,10 @@ namespace Acacia.Utils public class TasksBackgroundRespawn : TaskExecutor { private readonly BlockingCollection _tasks = new BlockingCollection(); - public static int TIMEOUT_MS = 5000; - - public TasksBackgroundRespawn() + public static int TIMEOUT_MS; + public TasksBackgroundRespawn(int timeout_ms) { + TIMEOUT_MS = timeout_ms; Thread t = new Thread(Watcher); t.SetApartmentState(ApartmentState.STA); t.Start();