KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jacorb > util > threadpool > ConsumerTie


1 /*
2  * JacORB - a free Java ORB
3  *
4  * Copyright (C) 1997-2004 Gerald Brose.
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Library General Public
8  * License as published by the Free Software Foundation; either
9  * version 2 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  * License along with this library; if not, write to the Free
18  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  */

20
21
22 package org.jacorb.util.threadpool;
23
24 /**
25  * ConsumerTie.java
26  *
27  * Created: Fri Jun 9 15:44:26 2000
28  *
29  * @author Nicolas Noffke
30  * $Id: ConsumerTie.java,v 1.9 2004/05/06 12:40:01 nicolas Exp $
31  */

32
33 public class ConsumerTie
34     implements Runnable JavaDoc
35 {
36     private boolean run = true;
37     private ThreadPool pool = null;
38     private Consumer delegate = null;
39
40     public ConsumerTie( ThreadPool pool,
41                         Consumer delegate )
42     {
43         this.pool = pool;
44         this.delegate = delegate;
45     }
46     
47     public void run()
48     {
49         try
50         {
51             while( run )
52             {
53                 Object JavaDoc job = pool.getJob();
54       
55                 if( job == null )
56                 {
57                     /*
58                      * job == null is sent by the pool, if there are
59                      * too much idle threads. Therefore we exit.
60                      */

61                     return;
62                 }
63                 else
64                 {
65                     delegate.doWork( job );
66                 }
67             }
68         }
69         catch( Exception JavaDoc e )
70         {
71             return;
72         }
73     }
74 } // ConsumerTie
75

76
77
78
Popular Tags