Repository: reef Updated Branches: refs/heads/master 9fd95d046 -> e8b7c08f0
[REEF-1518] Allow map and update functions in IMRU be disposable This change adds disposing of map/update functions (if they are disposable) to Map/UpdateTaskHost Dispose. JIRA: [REEF-1518](https://issues.apache.org/jira/browse/REEF-1518) Pull request: This closes #1130 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/e8b7c08f Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/e8b7c08f Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/e8b7c08f Branch: refs/heads/master Commit: e8b7c08f07a163d28f720974321220847bdb8623 Parents: 9fd95d0 Author: Mariia Mykhailova <[email protected]> Authored: Thu Sep 22 17:56:08 2016 -0700 Committer: Julia Wang <[email protected]> Committed: Fri Sep 23 15:21:34 2016 -0700 ---------------------------------------------------------------------- .../OnREEF/IMRUTasks/MapTaskHost.cs | 14 ++++++++++++++ .../OnREEF/IMRUTasks/TaskHostBase.cs | 6 +++--- .../OnREEF/IMRUTasks/UpdateTaskHost.cs | 14 ++++++++++++++ 3 files changed, 31 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/e8b7c08f/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/MapTaskHost.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/MapTaskHost.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/MapTaskHost.cs index 7afa955..a9e2cb3 100644 --- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/MapTaskHost.cs +++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/MapTaskHost.cs @@ -16,6 +16,7 @@ // under the License. using System; +using System.Threading; using Org.Apache.REEF.Common.Tasks; using Org.Apache.REEF.IMRU.API; using Org.Apache.REEF.IMRU.OnREEF.Driver; @@ -113,5 +114,18 @@ namespace Org.Apache.REEF.IMRU.OnREEF.IMRUTasks { get { return "MapTaskHost"; } } + + public override void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) == 0) + { + _groupCommunicationsClient.Dispose(); + var disposableTask = _mapTask as IDisposable; + if (disposableTask != null) + { + disposableTask.Dispose(); + } + } + } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/reef/blob/e8b7c08f/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/TaskHostBase.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/TaskHostBase.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/TaskHostBase.cs index 3c26d90..874f586 100644 --- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/TaskHostBase.cs +++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/TaskHostBase.cs @@ -36,12 +36,12 @@ namespace Org.Apache.REEF.IMRU.OnREEF.IMRUTasks /// <summary> /// Shows if the object has been disposed. /// </summary> - private int _disposed; + protected int _disposed; /// <summary> /// Group Communication client for the task /// </summary> - private readonly IGroupCommClient _groupCommunicationsClient; + protected readonly IGroupCommClient _groupCommunicationsClient; /// <summary> /// Task close Coordinator to handle the work when receiving task close event @@ -157,7 +157,7 @@ namespace Org.Apache.REEF.IMRU.OnREEF.IMRUTasks /// <summary> /// Dispose function. Dispose IGroupCommunicationsClient. /// </summary> - public void Dispose() + public virtual void Dispose() { if (Interlocked.Exchange(ref _disposed, 1) == 0) { http://git-wip-us.apache.org/repos/asf/reef/blob/e8b7c08f/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/UpdateTaskHost.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/UpdateTaskHost.cs b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/UpdateTaskHost.cs index 60694e5..6c23b65 100644 --- a/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/UpdateTaskHost.cs +++ b/lang/cs/Org.Apache.REEF.IMRU/OnREEF/IMRUTasks/UpdateTaskHost.cs @@ -16,6 +16,7 @@ // under the License. using System; +using System.Threading; using Org.Apache.REEF.Common.Tasks; using Org.Apache.REEF.IMRU.API; using Org.Apache.REEF.IMRU.OnREEF.Driver; @@ -153,5 +154,18 @@ namespace Org.Apache.REEF.IMRU.OnREEF.IMRUTasks { get { return "UpdateTaskHost"; } } + + public override void Dispose() + { + if (Interlocked.Exchange(ref _disposed, 1) == 0) + { + _groupCommunicationsClient.Dispose(); + var disposableTask = _updateTask as IDisposable; + if (disposableTask != null) + { + disposableTask.Dispose(); + } + } + } } } \ No newline at end of file
