Check-in [1edde401ce]
Overview
Comment: | Disable update_streams_partially_done() for Gtk3, as that's the main cause of memory corruption (despite being run in idle loop). |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1edde401cee093dceb7a8b2d37c636d6 |
User & Date: | mario on 2015-04-24 04:59:39 |
Other Links: | manifest | tags |
Context
2015-04-24
| ||
05:00 | Split plugin configuration into channels and [features] tabs. check-in: bd411967bc user: mario tags: trunk | |
04:59 | Disable update_streams_partially_done() for Gtk3, as that's the main cause of memory corruption (despite being run in idle loop). check-in: 1edde401ce user: mario tags: trunk | |
00:00 | Add conf.nothreads flag and --nt cmdline flag, to prevent Gtk3 idle update race conditions if need be. (Still flaky for initial startups.) check-in: ce0e9149db user: mario tags: trunk | |
Changes
Modified channels/__init__.py from [7050519949] to [b129e11a0f].
︙ | ︙ | |||
9 10 11 12 13 14 15 | # author: mario # url: http://fossil.include-once.org/streamtuner2/ # pack: # bookmarks.py configwin.py streamedit.py history.py search.py links.py # icast.py internet_radio.py itunes.py jamendo.py live365.py global_key.py # modarchive.py myoggradio.py punkcast.py radiobrowser.py radiotray.py # shoutcast.py surfmusik.py timer.py tunein.py xiph.py youtube.py | | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # author: mario # url: http://fossil.include-once.org/streamtuner2/ # pack: # bookmarks.py configwin.py streamedit.py history.py search.py links.py # icast.py internet_radio.py itunes.py jamendo.py live365.py global_key.py # modarchive.py myoggradio.py punkcast.py radiobrowser.py radiotray.py # shoutcast.py surfmusik.py timer.py tunein.py xiph.py youtube.py # exportcat.py useragentswitcher.py somafm.py dnd.py ubuntuusers.py # config: - # priority: core # # GenericChannel implements the basic GUI functions and defines # the default channel data structure. It implements fallback logic # for all other channel implementations. Only `bookmarks` uses it # directly. # # All other plugins don't have a pre-defined Notebook tab in the # GtkBuilder description. They derive from ChannelPlugins therefore, # which constructs and registers the required gtk widgets manually. import gtk from uikit import uikit, ver as gtk_ver from config import * import ahttp as http import action import favicon import os.path import xml.sax.saxutils import re |
︙ | ︙ | |||
298 299 300 301 302 303 304 | # store current streams data def save(self): conf.save("cache/" + self.module, self.streams, gz=1) # called occasionally while retrieving and parsing def update_streams_partially_done(self, entries): | > > > | | 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 | # store current streams data def save(self): conf.save("cache/" + self.module, self.streams, gz=1) # called occasionally while retrieving and parsing def update_streams_partially_done(self, entries): if gtk_ver == 3 and not conf.nothreads: pass else: # kills Gtk3 too easily uikit.do(uikit.columns, self.gtk_list, self.datamap, entries) # finds differences in new/old streamlist, marks deleted with flag def deleted_streams(self, new, old): diff = [] new = [row.get("url","http://example.com/") for row in new] for row in old: |
︙ | ︙ |