v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "User talk:Rick/Memory research"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
Hi Rick,<br>you may be interested in the "Voodoo" section on [[User:0x517A5D|my user talk page]]. <br>&mdash;[[User:0x517A5D|0x517A5D]] 01:28, 8 November 2007 (EST)
 
Hi Rick,<br>you may be interested in the "Voodoo" section on [[User:0x517A5D|my user talk page]]. <br>&mdash;[[User:0x517A5D|0x517A5D]] 01:28, 8 November 2007 (EST)
 
: Thanks for the info, though it wasn't necessary. :) --[[User:Rick|Rick]] 04:59, 8 November 2007 (EST)
 
: Thanks for the info, though it wasn't necessary. :) --[[User:Rick|Rick]] 04:59, 8 November 2007 (EST)
 +
::So you found something similar, or you just intend to rediscover/recompile for each new version?  Not being snarky here, honestly curious. <br>&mdash;[[User:0x517A5D|0x517A5D]] 12:42, 8 November 2007 (EST)
 +
 +
On another topic, I was looking at reveal's main.cpp and saw a bug.  You're not suspending/resuming the process.  The problem is that process handles are not thread handles, and SuspendThread() and friends use thread handles.  You do this:
 +
 +
<pre>
 +
GetWindowThreadProcessId(window, &pid);
 +
[...]
 +
SuspendThread(process);
 +
cleanMap(process);
 +
ResumeThread(process);
 +
CloseHandle(process);
 +
</pre>
 +
But you need to do something like this:
 +
<pre>
 +
thread = GetWindowThreadProcessId(window, &pid);
 +
[...]
 +
SuspendThread(thread);
 +
cleanMap(process);
 +
ResumeThread(thread);
 +
CloseHandle(thread);
 +
CloseHandle(process);
 +
</pre>
 +
<br>&mdash;[[User:0x517A5D|0x517A5D]] 12:42, 8 November 2007 (EST)

Revision as of 17:42, 8 November 2007

Hi Rick,
you may be interested in the "Voodoo" section on my user talk page.
0x517A5D 01:28, 8 November 2007 (EST)

Thanks for the info, though it wasn't necessary. :) --Rick 04:59, 8 November 2007 (EST)
So you found something similar, or you just intend to rediscover/recompile for each new version? Not being snarky here, honestly curious.
0x517A5D 12:42, 8 November 2007 (EST)

On another topic, I was looking at reveal's main.cpp and saw a bug. You're not suspending/resuming the process. The problem is that process handles are not thread handles, and SuspendThread() and friends use thread handles. You do this:

GetWindowThreadProcessId(window, &pid);
[...]
SuspendThread(process);
cleanMap(process);
ResumeThread(process);
CloseHandle(process);

But you need to do something like this:

thread = GetWindowThreadProcessId(window, &pid);
[...]
SuspendThread(thread);
cleanMap(process);
ResumeThread(thread);
CloseHandle(thread);
CloseHandle(process);


0x517A5D 12:42, 8 November 2007 (EST)