* gtk/TreeNode.cs: Add Interlocked.Increment rather than ++. This

makes it safe to create tree nodes in a worker thread as long as
	you reparent them into the tree with another thread. Thanks to mk
	for allowing a bit of threadedness in :-).
	

svn path=/trunk/gtk-sharp/; revision=48683
This commit is contained in:
Ben Maurer 2005-08-22 17:11:37 +00:00
parent 3fb0631c4e
commit c9eaab1cf3
2 changed files with 8 additions and 1 deletions

View File

@ -1,5 +1,10 @@
2005-08-22 Ben Maurer <bmaurer@novell.com> 2005-08-22 Ben Maurer <bmaurer@novell.com>
* gtk/TreeNode.cs: Add Interlocked.Increment rather than ++. This
makes it safe to create tree nodes in a worker thread as long as
you reparent them into the tree with another thread. Thanks to mk
for allowing a bit of threadedness in :-).
* gtk/NodeView.cs: Fix leak here. r=mkestner * gtk/NodeView.cs: Fix leak here. r=mkestner
2005-08-22 Mike Kestner <mkestner@novell.com> 2005-08-22 Mike Kestner <mkestner@novell.com>

View File

@ -23,9 +23,11 @@ namespace Gtk {
using System; using System;
using System.Collections; using System.Collections;
using System.Threading;
public abstract class TreeNode : ITreeNode { public abstract class TreeNode : ITreeNode {
// Only use interlocked operations
static int next_idx = 0; static int next_idx = 0;
int id; int id;
@ -34,7 +36,7 @@ namespace Gtk {
public TreeNode () public TreeNode ()
{ {
id = next_idx++; id = Interlocked.Increment (ref next_idx);
} }
public int ID { public int ID {