• Join/Login
  • Business Software
  • Open Source Software
  • For Vendors
  • Blog
  • About
  • More
    • Articles
    • Create
    • SourceForge Podcast
    • Site Documentation
    • Subscribe to our Newsletter
    • Support Request
SourceForge logo
For Vendors Help Create Join Login
SourceForge logo
Business Software
Open Source Software
SourceForge Podcast
Resources
  • Articles
  • Case Studies
  • Blog
Menu
  • Help
  • Create
  • Join
  • Login
  • Home
  • Browse
  • Tk Toolkit
  • Read-Only Bugs

Tk_Uids clean up incorrectly w/ threads

Brought to you by: andreas_kupries, dgp, hobbs, kennykb, and 2 others
  • Summary
  • Files
  • Reviews
  • Support
  • Tickets ▾
    • Read-Only Bugs
    • Read-Only Patches
    • Read-Only Feature Requests
Menu ▾ ▴
  • Create Ticket
  • View Stats

Group

  • current: 8.5.14
  • current: 8.6.0
  • final: 8.1.1
  • final: 8.2.3
  • obsolete: 8.0.3
  • obsolete: 8.1
  • obsolete: 8.1b2
  • obsolete: 8.1b3
  • obsolete: 8.2
  • obsolete: 8.2.1
  • obsolete: 8.2.2
  • obsolete: 8.2b1
  • obsolete: 8.2b2
  • obsolete: 8.3
  • obsolete: 8.3.1
  • obsolete: 8.3.2
  • obsolete: 8.3.3
  • obsolete: 8.3.4
  • obsolete: 8.4.0
  • obsolete: 8.4.1
  • obsolete: 8.4.11
  • obsolete: 8.4.12
  • obsolete: 8.4.13
  • obsolete: 8.4.14
  • obsolete: 8.4.15
  • obsolete: 8.4.16
  • obsolete: 8.4.17
  • obsolete: 8.4.18
  • obsolete: 8.4.19
  • obsolete: 8.4.2
  • obsolete: 8.4.3
  • obsolete: 8.4.4
  • obsolete: 8.4.5
  • obsolete: 8.4.6
  • obsolete: 8.4.7
  • obsolete: 8.4.9
  • obsolete: 8.4a1
  • obsolete: 8.4a2
  • obsolete: 8.4a3
  • obsolete: 8.4a4
  • obsolete: 8.4a5
  • obsolete: 8.4b1
  • obsolete: 8.4b2
  • obsolete: 8.5.0
  • obsolete: 8.5.1
  • obsolete: 8.5.10
  • obsolete: 8.5.11
  • obsolete: 8.5.12
  • obsolete: 8.5.13
  • obsolete: 8.5.2
  • obsolete: 8.5.3
  • obsolete: 8.5.4
  • obsolete: 8.5.5
  • obsolete: 8.5.6
  • obsolete: 8.5.7
  • obsolete: 8.5.8
  • obsolete: 8.5.9
  • obsolete: 8.5a0
  • obsolete: 8.5a1
  • obsolete: 8.5a2
  • obsolete: 8.5a3
  • obsolete: 8.5a4
  • obsolete: 8.5a5
  • obsolete: 8.5a6
  • obsolete: 8.5a7
  • obsolete: 8.5b1
  • obsolete: 8.5b3
  • obsolete: 8.6a1
  • obsolete: 8.6a2
  • obsolete: 8.6a3
  • obsolete: 8.6a4
  • obsolete: 8.6b1
  • obsolete: 8.6b1.1
  • obsolete: 8.6b2
  • obsolete: 8.6b3

Searches

  • Changes
  • Closed Tickets
  • Open Tickets

Help

  • Formatting Help

#1369 Tk_Uids clean up incorrectly w/ threads

obsolete: 8.4.1
open
Jeffrey Hobbs
72. Atoms (1)
5
2002-12-27
2002-12-27
Anonymous
No

From Christian Werner (chw ch-werner de)

While playing around with Tk 8.4.1 and multi-threading
on Win32
I observed some strange behaviour w.r.t. Tk_Uids:

1. Tk_ConfigureWidget() converts the name/class/default
values
in the given Tk_ConfigSpec to UIDs.

2. Tk_GetUid() installs a per-thread exit handler
(FreeUidThreadExitProc()) which destroys the per-thread
UID
table (and the UIDs, too) on thread termination, i.e.
after the thread using Tk exited, some Tk_ConfigSpec
fields
point to free'd memory.

3. When Tk is re-animated later (Tk_Init()) in a new
thread,
arbitrary Bad Things happen as consequence to
invalidated UIDs
from point 2.

Questions:

- Is it really necessary to convert name/class/default
values to
UIDs in Tk_ConfigureWidget ?
- Is it really necessary to have a per-thread UID table ?
---
In the meantime I tried to temporarily fix it by:

1. Making dbName/dbClass/defValue fields in
Tk_ConfigSpec
to normal char pointer instead of Tk_Uids
2. Using a mutex locked global (= per process) Uid table
3. Making a temporary copy of the Tk_ConfigSpec array
in
Tk_ConfigureWidget

See the attached patch. However, this isn't perfect since
the
TK_CONFIG_OPTION_SPECIFIED bit is not reflected to
callers
of Tk_ConfigureWidget for threaded builds of Tk.
---
And attached patch.

Discussion

  • Nobody/Anonymous

    Nobody/Anonymous - 2002-12-27
     
    TK841.patch
    If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SourceForge
  • Create a Project
  • Open Source Software
  • Business Software
  • Top Downloaded Projects
Company
  • About
  • Team
  • SourceForge Headquarters
    1320 Columbia Street Suite 310
    San Diego, CA 92101
    +1 (858) 422-6466
Resources
  • Support
  • Site Documentation
  • Site Status
  • SourceForge Reviews
SourceForge logo
© 2026 Slashdot Media. All Rights Reserved.
Terms Privacy Opt Out Advertise
MongoDB Logo MongoDB