Skip to content

Commit 2ec8acd

Browse files
committed
Fix issue #9
1 parent aa19777 commit 2ec8acd

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

src/SingleInstance.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,33 @@ public static bool InitializeAsFirstInstance<T>(this T instance, string uniqueNa
3939

4040
private static void SignalFirstInstance(string channelName, IList<string> commandLineArgs)
4141
{
42-
var minMessageAge = TimeSpan.FromSeconds(30);
43-
var bus = new TinyMessageBus(channelName, minMessageAge);
42+
var bus = GetTinyMessageBus(channelName);
4443
var serializedArgs = commandLineArgs.Serialize();
45-
bus.PublishAsync(serializedArgs).Wait();
44+
bus?.PublishAsync(serializedArgs).Wait();
4645
WaitTillMessageGetsPublished(bus);
4746
}
4847

48+
private static TinyMessageBus GetTinyMessageBus(string channelName, int tryCount = 50)
49+
{
50+
int tries = 0;
51+
var minMessageAge = TimeSpan.FromSeconds(30);
52+
while (tries++ < tryCount)
53+
{
54+
try
55+
{
56+
var bus = new TinyMessageBus(channelName, minMessageAge);
57+
return bus;
58+
}
59+
catch (Exception) { }
60+
}
61+
return default;
62+
}
63+
4964
private static void WaitTillMessageGetsPublished(TinyMessageBus bus)
5065
{
66+
if (bus == null)
67+
return;
68+
5169
while (bus.MessagesPublished != 1)
5270
{
5371
Thread.Sleep(10);

0 commit comments

Comments
 (0)