Trac is being migrated to new services! Issues can be found in our new
YouTrack instance and WIKI pages can be found on our
website.
- Timestamp:
-
Sep 29, 2007, 4:12:14 AM (16 years ago)
- Author:
-
evands
- Comment:
-
Made this page more true
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v8
|
v9
|
|
17 | 17 | = Is it threaded? = |
18 | 18 | |
19 | | Nope! libpurple uses the glib mainloop to do all the things. It watches socket for new data and calls timeout functions after a specified delay. It's easiest if your application also uses the glib mainloop, but this is not required. |
| 19 | libpurple is ''not'' threadsafe. It should be accessed by an implementing UI only one thread ''ever'' (that is, do not attempt to use synchronization or locks to access it from multiple threads). Plugins can use multiple threads, but they must always call libpurple functions and callbacks on the thread on which they were initialized (typically the main thread of the program). |
| 20 | |
| 21 | libpurple's run loop access occurs through eventloop.c; the UI must implement the UI Ops defined there and register them in order to watch sockets for new data and call timeout functions after a specified delay. For example, Pidgin uses the glib run loop, and Adium uses the Cocoa event run lop. |
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!