ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/clientinterface/PacketSorter.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/clientinterface/PacketSorter.java (file contents):
Revision 1.11 by tdb, Thu Mar 1 17:29:46 2001 UTC vs.
Revision 1.12 by tdb, Thu Mar 1 23:57:09 2001 UTC

# Line 128 | Line 128 | class PacketSorter extends Thread {
128       * @param dhQueue a Queue being used by the DataHandler that is registering
129       * @param hostList a semi-colon seperated list of hosts
130       */
131 <    public synchronized void register(Queue dhQueue, String hostList) {
131 >    public void register(Queue dhQueue, String hostList) {
132          // check to see if we want all hosts
133          if(hostList.equals("")) {
134 <            _allHostDataList.add(dhQueue);
134 >            synchronized(this) {
135 >                _allHostDataList.add(dhQueue);
136 >            }
137              _logger.write(toString(), Logger.SYSMSG, "registered DataHandler for all hosts");
138          }
139          else {
# Line 139 | Line 141 | class PacketSorter extends Thread {
141              StringTokenizer st = new StringTokenizer(hostList, ";");
142              while(st.hasMoreTokens()) {
143                  String host = st.nextToken();
144 <                // see if we already have a list in the map for this host
145 <                if(_hostMap.containsKey(host)) {
146 <                    // we do, so add to it
147 <                    List list = (List) _hostMap.get(host);
148 <                    list.add(dhQueue);
144 >                synchronized(this) {
145 >                    // see if we already have a list in the map for this host
146 >                    if(_hostMap.containsKey(host)) {
147 >                        // we do, so add to it
148 >                        List list = (List) _hostMap.get(host);
149 >                        list.add(dhQueue);
150 >                    }
151 >                    else {
152 >                        // we don't, so create a list and put it in the map
153 >                        LinkedList list = new LinkedList();
154 >                        list.add(dhQueue);
155 >                        _hostMap.put(host, list);
156 >                    }
157                  }
148                else {
149                    // we don't, so create a list and put it in the map
150                    LinkedList list = new LinkedList();
151                    list.add(dhQueue);
152                    _hostMap.put(host, list);
153                }
158              }
159              _logger.write(toString(), Logger.SYSMSG, "registered DataHandler for hosts: "+hostList);
160          }
161          // always add host to our complete host list
162 <        _allHostsList.add(dhQueue);
162 >        synchronized(this) {
163 >            _allHostsList.add(dhQueue);
164 >        }
165      }
166      
167      /**
# Line 169 | Line 175 | class PacketSorter extends Thread {
175       * @param dhQueue a Queue being used by the DataHandler that is deregistering
176       * @param hostList a semi-colon seperated list of hosts
177       */
178 <    public synchronized void deregister(Queue dhQueue, String hostList) {
178 >    public void deregister(Queue dhQueue, String hostList) {
179          // go through the list of hosts
180          if(hostList.equals("")) {
181 <            _allHostDataList.remove(dhQueue);
181 >            synchronized(this) {
182 >                _allHostDataList.remove(dhQueue);
183 >            }
184              _logger.write(toString(), Logger.SYSMSG, "deregistered DataHandler for all hosts");
185          }
186          else {
187              StringTokenizer st = new StringTokenizer(hostList, ";");
188              while(st.hasMoreTokens()) {
189                  String host = st.nextToken();
190 <                // this should in reality always be true, but best check
191 <                if(_hostMap.containsKey(host)) {
192 <                    // get the list and remove the host in question
193 <                    LinkedList list = (LinkedList) _hostMap.get(host);
194 <                    list.remove(dhQueue);
195 <                    // if the list is now empty, we might as well remove it
196 <                    if(list.size()==0) {
197 <                        _hostMap.remove(host);
190 >                synchronized(this) {
191 >                    // this should in reality always be true, but best check
192 >                    if(_hostMap.containsKey(host)) {
193 >                        // get the list and remove the host in question
194 >                        LinkedList list = (LinkedList) _hostMap.get(host);
195 >                        list.remove(dhQueue);
196 >                        // if the list is now empty, we might as well remove it
197 >                        if(list.size()==0) {
198 >                            _hostMap.remove(host);
199 >                        }
200                      }
201                  }
202              }
203              _logger.write(toString(), Logger.SYSMSG, "deregistered DataHandler for hosts: "+hostList);
204          }
205          // always remove host from our complete host list
206 <        _allHostsList.remove(dhQueue);
206 >        synchronized(this) {
207 >            _allHostsList.remove(dhQueue);
208 >        }
209      }
210      
211      /**

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines