- Singleton object, one of the third party library use singleton and my application is multithreaded, so they were on fire. lesson learned: singleton is bad
- Smart pointer, another third party uses smart pointer to manage memory, therefore depends on state it might help me clean up my memory :). lesson learned: raw pointer isn;t that difficult then the behavior is better understood so use more raw pointer
- Unreset windows event, if a event was created with manual reset attribute, the state will stay set until it is manually resetted, this make your program only work correctly at the first time
- thread id, GetThreadId() is only available on window vista and 64bit xp. on xp stored the id yourself. and the question is where to get the id? if you used _beginthread or _beginthreadex, it is the thrdadd parameter
- WM_USER event doesn't dispatch by DispatchMessage(), the reason still a big mistery, hopefully i could find out soon
- if you got interlocking problem while you delete child window with DestroyWindow(), try set exstyle to WS_EX_NOPARENTNOTIFY when you create child window, this could prevent the interlocking. (more testing needed)
- the infamous, interface class no virtual destructor problem, see my previous post
- and many more careless mistakes that do not worth to mention here
Tuesday, May 12, 2009
Another lesson learned
8 hours brain frying debugging finally solved a crashed bug. yes it's a single bug reported in Bugzilla, but it's actually contributed by many sources.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment