From: Terrance S. <ts...@cs...> - 2005-09-23 19:03:02
|
All: One of the tasks necessary in making the MT engine stable enough for release is to get a handle on global variables. In the course of developing the MT engine, Rui has identified most of the global variables in the system and ensured that many of these variables are put into thread-specific data structures when compiling with multi-threading, and that many of the rest are used only in procedures that are controlled by mutexes. I took the latest version of the MT engine, loaded it in gdb, and ran the "info variables" command. which shows all non-local variables, both static and non-static. There are about 260 of these left. Some of these are innocuous; many are time-bombs. I'd like to propose the following method to deal with global variables in the system. 1) ifdef out any variables that are not intended for use in the MT engine (as we have been doing) 2) For those variables that are intended to constants, append _glc to their name (for global constant) 3) For those global variables that are not constants, but are to be included in the MT configuration, append _gl to their names, indicating that they have been accounted for in some way. 4) Once we've accounted for all global variables, we make it part of our check-in procedure that we don't include any more unintended global variabls. I'm willing to take the lead on this if others agree, (and if nobody has a better idea on how to deal with the issue). In the absence of comments, I'll start on it some time next week. Terry |