diff options
| author | Ox Cart | 2017-08-27 11:58:01 -0500 | 
|---|---|---|
| committer | Ox Cart | 2017-08-27 11:58:01 -0500 | 
| commit | 98b24bc00bf9f94d20a776253ee5086f2ae5b00c (patch) | |
| tree | 714d5917e3b6057bb501a559de133cec488f3f08 | |
| parent | f328fc3e81eb9ae48f27810bc6df210111e97743 (diff) | |
| download | systray-98b24bc00bf9f94d20a776253ee5086f2ae5b00c.tar.bz2 | |
Running onReady in separate goroutine
| -rw-r--r-- | systray.go | 14 | 
1 files changed, 14 insertions, 0 deletions
| @@ -53,8 +53,22 @@ func Run(onReady func(), onExit func()) {  	if onReady == nil {  		onReady = func() {} +	} else { +		// Run onReady on separate goroutine to avoid blocking event loop +		origOnReady := onReady +		readyCh := make(chan interface{}) +		go func() { +			<-readyCh +			origOnReady() +		}() +		onReady = func() { +			close(readyCh) +		}  	}  	systrayReady = onReady + +	// unlike onReady, onExit runs in the event loop to make sure it has time to +	// finish before the process terminates  	if onExit == nil {  		onExit = func() {}  	} | 
