Mercurial > projects > dwt-addons
view dwtx/core/internal/jobs/Deadlock.d @ 122:9d0585bcb7aa
Add core.jobs package
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Tue, 12 Aug 2008 02:34:21 +0200 |
parents | |
children | 862b05e0334a |
line wrap: on
line source
/******************************************************************************* * Copyright (c) 2003, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM - Initial API and implementation * Port to the D programming language: * Frank Benoit <benoit@tionex.de> *******************************************************************************/ module dwtx.core.internal.jobs.Deadlock; import tango.core.Thread; import dwt.dwthelper.utils; import dwtx.core.runtime.jobs.ISchedulingRule; /** * The deadlock class stores information about a deadlock that just occurred. * It contains an array of the threads that were involved in the deadlock * as well as the thread that was chosen to be suspended and an array of locks * held by that thread that are going to be suspended to resolve the deadlock. */ class Deadlock { //all the threads which are involved in the deadlock private Thread[] threads; //the thread whose locks will be suspended to resolve deadlock private Thread candidate; //the locks that will be suspended private ISchedulingRule[] locks; public this(Thread[] threads, ISchedulingRule[] locks, Thread candidate) { this.threads = threads; this.locks = locks; this.candidate = candidate; } public ISchedulingRule[] getLocks() { return locks; } public Thread getCandidate() { return candidate; } public Thread[] getThreads() { return threads; } }