[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdeextragear-1/amarok/src/scripts/rbot/rss
From:       Stanislav Karchebny <stanislav.karchebny () kdemail ! net>
Date:       2005-04-28 9:38:22
Message-ID: 20050428093822.66EC0662 () office ! kde ! org
[Download RAW message or body]

CVS commit by karchebny: 


* Properly kill watcher threads on rewatch (please test).


  M +9 -1      rss.rb   1.11


--- kdeextragear-1/amarok/src/scripts/rbot/rss/rss.rb  #1.10:1.11
@@ -29,4 +29,5 @@
         @feeds = Hash.new
         @watchList = Hash.new
+        @watchThreads = []
         [ ["#{@bot.botclass}/rss/feeds", @feeds], ["#{@bot.botclass}/rss/watchlist", \
@watchList] ].each { |set|  if File.exists?(set[0])
@@ -144,4 +145,11 @@
 
     def handle_rewatch(m)
+        # Abort all running threads.
+        Thread.critical=true
+        @watchThreads.each { |thread| thread.kill }
+        @watchThreads = []
+        Thread.critical=false
+
+        # Read watches from list.
         @watchList.each{ |url, feedFormat|
             watchRss(m, url,feedFormat)
@@ -169,5 +177,5 @@
     private
     def watchRss(m, url, feedFormat)
-        Thread.new do
+        @watchThreads << Thread.new do
             puts 'watchRss thread started.'
             oldItems = []


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic