repositories
/
deb_libcec.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4e8df66
)
still locking up when disposing, because the log callback is trying to write to the...
author
Lars Op den Kamp
<lars@opdenkamp.eu>
Fri, 13 Dec 2013 10:51:41 +0000
(11:51 +0100)
committer
Lars Op den Kamp
<lars@opdenkamp.eu>
Fri, 13 Dec 2013 10:51:41 +0000
(11:51 +0100)
src/LibCecTray/ui/CECTray.cs
patch
|
blob
|
blame
|
history
diff --git
a/src/LibCecTray/ui/CECTray.cs
b/src/LibCecTray/ui/CECTray.cs
index 197ce32818c0d7537d2349f2f4102ce4b58f0854..021eaa38e55d5d18c2bd89cdabc6036bc8ef6e90 100644
(file)
--- a/
src/LibCecTray/ui/CECTray.cs
+++ b/
src/LibCecTray/ui/CECTray.cs
@@
-41,6
+41,7
@@
using LibCECTray.settings;
using Microsoft.Win32;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.Security.Permissions;
using System.Runtime.InteropServices;
+using System.Threading;
namespace LibCECTray.ui
{
namespace LibCECTray.ui
{
@@
-57,6
+58,21
@@
namespace LibCECTray.ui
XBMC
}
XBMC
}
+ class AsyncDisconnect
+ {
+ public AsyncDisconnect(CECController controller)
+ {
+ _controller = controller;
+ }
+
+ public void Process()
+ {
+ _controller.Close();
+ }
+
+ private CECController _controller;
+ }
+
/// <summary>
/// Main LibCecTray GUI
/// </summary>
/// <summary>
/// Main LibCecTray GUI
/// </summary>
@@
-174,11
+190,11
@@
namespace LibCECTray.ui
protected override void Dispose(bool disposing)
{
Hide();
protected override void Dispose(bool disposing)
{
Hide();
- SuppressLogUpdates = true;
if (disposing)
{
Controller.CECActions.SuppressUpdates = true;
if (disposing)
{
Controller.CECActions.SuppressUpdates = true;
- Controller.Close();
+ AsyncDisconnect dc = new AsyncDisconnect(Controller);
+ (new Thread(dc.Process)).Start();
}
if (disposing && (components != null))
{
}
if (disposing && (components != null))
{
@@
-312,9
+328,6
@@
namespace LibCECTray.ui
delegate void UpdateLogCallback();
private void UpdateLog()
{
delegate void UpdateLogCallback();
private void UpdateLog()
{
- if (SuppressLogUpdates)
- return;
-
if (tbLog.InvokeRequired)
{
UpdateLogCallback d = UpdateLog;
if (tbLog.InvokeRequired)
{
UpdateLogCallback d = UpdateLog;
@@
-572,7
+585,6
@@
namespace LibCECTray.ui
#endregion
#region Class members
#endregion
#region Class members
- private bool SuppressLogUpdates = false;
private ConfigTab _selectedTab = ConfigTab.Configuration;
private string _log = string.Empty;
private CECController _controller;
private ConfigTab _selectedTab = ConfigTab.Configuration;
private string _log = string.Empty;
private CECController _controller;