Final polish for 4.3.10.

This commit is contained in:
Markus Armbruster 2007-09-06 18:02:57 +00:00
parent 4b1fb9b924
commit 207cbb86ab
2 changed files with 22 additions and 24 deletions

View file

@ -1,4 +1,4 @@
Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007 Changes to Empire 4.3.10 - Thu Sep 6 17:59:53 UTC 2007
* Bridge spans now cost $1000 instead of $2000, and bridge towers * Bridge spans now cost $1000 instead of $2000, and bridge towers
$3000 instead of $7500. $3000 instead of $7500.
* The Windows port now supports IPv6, but it still needs to be * The Windows port now supports IPv6, but it still needs to be
@ -8,16 +8,15 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
that facilitates attacks against the PRNG. This misfeature crept that facilitates attacks against the PRNG. This misfeature crept
into 4.3.0. into 4.3.0.
* Remove the ancient, crufty non-UCONTEXT system-dependent LWP code. * Remove the ancient, crufty non-UCONTEXT system-dependent LWP code.
Using it required manual hackery since 4.3.0, and it hasn't been Using it required manual hackery since 4.3.0.
missed.
* Plug file descriptor leak in add command. * Plug file descriptor leak in add command.
* Don't kill player connections violently when their thread appears * Don't kill player connections violently when their thread appears
to be hung. Threads being aborted by update or shutdown could be to be hung. Threads being aborted by update or shutdown could be
misidentified as hung, and the violence could lead to resource misidentified as hung, and the violence could lead to resource
leaks, locked out updates, and corrupted game state. leaks, locked out updates, and corrupted game state.
* Fix LWP to wake up threads sleeping for a time reliably. Before, * Fix LWP to reliably wake up threads sleeping for a time. Before,
players with a sufficiently fast connection could starve out players with a sufficiently fast connection could starve out system
threads system threads, including the update. threads, including the update.
* Fix a class of bugs that made commands behave differently while the * Fix a class of bugs that made commands behave differently while the
update is attempting to take control: update is attempting to take control:
- No MOB_ACCESS mobility was gained. - No MOB_ACCESS mobility was gained.
@ -61,10 +60,10 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
- Simplify update to a single thread waiting for the trigger. - Simplify update to a single thread waiting for the trigger.
Before, three update threads had to perform a carefully Before, three update threads had to perform a carefully
choreographed dance to make updates happen. The dance relied on choreographed dance to make updates happen. The dance relied on
thread priorities for correctness, but they're only implemented thread priorities for correctness, which are only implemented by
by LWP. With pthreads and under Windows, demand updates were LWP. With pthreads and under Windows, demand updates were prone
prone to two update threads starting up concurrently. Even with to two update threads starting up concurrently. Even with LWP,
LWP, forced and demand updates could lead to double updates. forced and demand updates could lead to double updates.
- Use a lock for synchronization: commands take it shared, update - Use a lock for synchronization: commands take it shared, update
and shutdown take it exclusive. This makes update and shutdown and shutdown take it exclusive. This makes update and shutdown
block until all aborted commands terminated and gave up their block until all aborted commands terminated and gave up their
@ -73,8 +72,8 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
- New commands no longer fail while the update is pending, they are - New commands no longer fail while the update is pending, they are
delayed until after the update. delayed until after the update.
- New commands can no longer start during shutdown. Before, they - New commands can no longer start during shutdown. Before, they
could, but risked getting killed violently, corrupting the game could, but risked getting killed violently, possibly corrupting
state. game state.
- Fix command execution so that commands blocked in writing - Fix command execution so that commands blocked in writing
redirections are abortable. The bug allowed players to delay redirections are abortable. The bug allowed players to delay
update and shutdown indefinitely. update and shutdown indefinitely.

View file

@ -7,7 +7,7 @@ new Empire4 Server. This outlines the various changes and how they
will affect you, the player. These were coded as the Wolfpack project, will affect you, the player. These were coded as the Wolfpack project,
and bug-reports should be sent to <wolfpack@wolfpackempire.com>. and bug-reports should be sent to <wolfpack@wolfpackempire.com>.
.NF .NF
Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007 Changes to Empire 4.3.10 - Thu Sep 6 17:59:53 UTC 2007
* Bridge spans now cost $1000 instead of $2000, and bridge towers * Bridge spans now cost $1000 instead of $2000, and bridge towers
$3000 instead of $7500. $3000 instead of $7500.
* The Windows port now supports IPv6, but it still needs to be * The Windows port now supports IPv6, but it still needs to be
@ -17,16 +17,15 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
that facilitates attacks against the PRNG. This misfeature crept that facilitates attacks against the PRNG. This misfeature crept
into 4.3.0. into 4.3.0.
* Remove the ancient, crufty non-UCONTEXT system-dependent LWP code. * Remove the ancient, crufty non-UCONTEXT system-dependent LWP code.
Using it required manual hackery since 4.3.0, and it hasn't been Using it required manual hackery since 4.3.0.
missed.
* Plug file descriptor leak in add command. * Plug file descriptor leak in add command.
* Don't kill player connections violently when their thread appears * Don't kill player connections violently when their thread appears
to be hung. Threads being aborted by update or shutdown could be to be hung. Threads being aborted by update or shutdown could be
misidentified as hung, and the violence could lead to resource misidentified as hung, and the violence could lead to resource
leaks, locked out updates, and corrupted game state. leaks, locked out updates, and corrupted game state.
* Fix LWP to wake up threads sleeping for a time reliably. Before, * Fix LWP to reliably wake up threads sleeping for a time. Before,
players with a sufficiently fast connection could starve out players with a sufficiently fast connection could starve out system
threads system threads, including the update. threads, including the update.
* Fix a class of bugs that made commands behave differently while the * Fix a class of bugs that made commands behave differently while the
update is attempting to take control: update is attempting to take control:
- No MOB_ACCESS mobility was gained. - No MOB_ACCESS mobility was gained.
@ -70,10 +69,10 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
- Simplify update to a single thread waiting for the trigger. - Simplify update to a single thread waiting for the trigger.
Before, three update threads had to perform a carefully Before, three update threads had to perform a carefully
choreographed dance to make updates happen. The dance relied on choreographed dance to make updates happen. The dance relied on
thread priorities for correctness, but they're only implemented thread priorities for correctness, which are only implemented by
by LWP. With pthreads and under Windows, demand updates were LWP. With pthreads and under Windows, demand updates were prone
prone to two update threads starting up concurrently. Even with to two update threads starting up concurrently. Even with LWP,
LWP, forced and demand updates could lead to double updates. forced and demand updates could lead to double updates.
- Use a lock for synchronization: commands take it shared, update - Use a lock for synchronization: commands take it shared, update
and shutdown take it exclusive. This makes update and shutdown and shutdown take it exclusive. This makes update and shutdown
block until all aborted commands terminated and gave up their block until all aborted commands terminated and gave up their
@ -82,8 +81,8 @@ Changes to Empire 4.3.10 - Sun Sep 2 18:01:17 UTC 2007
- New commands no longer fail while the update is pending, they are - New commands no longer fail while the update is pending, they are
delayed until after the update. delayed until after the update.
- New commands can no longer start during shutdown. Before, they - New commands can no longer start during shutdown. Before, they
could, but risked getting killed violently, corrupting the game could, but risked getting killed violently, possibly corrupting
state. game state.
- Fix command execution so that commands blocked in writing - Fix command execution so that commands blocked in writing
redirections are abortable. The bug allowed players to delay redirections are abortable. The bug allowed players to delay
update and shutdown indefinitely. update and shutdown indefinitely.