ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/map-scheduler.ext
Revision 1.58 - (view) (download) (annotate) - [select for diffs]
Fri Feb 3 03:01:45 2012 UTC (12 years, 3 months ago) by root
Branch: MAIN
CVS Tags: HEAD, rel-3_1
Changes since 1.57: +6 -6 lines
Diff to previous 1.57
*** empty log message ***

Revision 1.57 - (view) (download) (annotate) - [select for diffs]
Sat Aug 13 20:20:30 2011 UTC (12 years, 9 months ago) by root
Branch: MAIN
Changes since 1.56: +1 -1 lines
Diff to previous 1.56
more anyevent conversion, also fix a bug where AnyEvent::BDB watchers were assumed to be EV watchers

Revision 1.56 - (view) (download) (annotate) - [select for diffs]
Wed May 4 07:36:40 2011 UTC (13 years ago) by root
Branch: MAIN
Changes since 1.55: +1 -1 lines
Diff to previous 1.55
clean up in_memory handling

Revision 1.55 - (view) (download) (annotate) - [select for diffs]
Fri May 14 22:56:47 2010 UTC (14 years ago) by root
Branch: MAIN
CVS Tags: rel-3_0
Changes since 1.54: +35 -34 lines
Diff to previous 1.54
music groups, music conf file, post_init async

Revision 1.54 - (view) (download) (annotate) - [select for diffs]
Wed May 5 23:23:29 2010 UTC (14 years ago) by root
Branch: MAIN
Changes since 1.53: +0 -3 lines
Diff to previous 1.53
move incloader to its own module, no onger emergency_save before perl_reload

Revision 1.53 - (view) (download) (annotate) - [select for diffs]
Tue May 4 21:45:42 2010 UTC (14 years ago) by root
Branch: MAIN
Changes since 1.52: +0 -1 lines
Diff to previous 1.52
*** empty log message ***

Revision 1.52 - (view) (download) (annotate) - [select for diffs]
Thu Apr 22 12:50:24 2010 UTC (14 years ago) by root
Branch: MAIN
Changes since 1.51: +1 -1 lines
Diff to previous 1.51
update to use newer cf::rndm and AE::Now

Revision 1.51 - (view) (download) (annotate) - [select for diffs]
Fri Dec 18 03:49:46 2009 UTC (14 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-2_92, rel-2_93
Changes since 1.50: +1 -1 lines
Diff to previous 1.50
*** empty log message ***

Revision 1.50 - (view) (download) (annotate) - [select for diffs]
Fri Oct 23 03:28:11 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_82, rel-2_90
Changes since 1.49: +7 -0 lines
Diff to previous 1.49
*** empty log message ***

Revision 1.49 - (view) (download) (annotate) - [select for diffs]
Fri Oct 23 03:08:34 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
Changes since 1.48: +4 -0 lines
Diff to previous 1.48
*** empty log message ***

Revision 1.48 - (view) (download) (annotate) - [select for diffs]
Tue Sep 23 04:29:11 2008 UTC (15 years, 7 months ago) by root
Branch: MAIN
CVS Tags: rel-2_71, rel-2_72, rel-2_73, rel-2_74, rel-2_75, rel-2_76, rel-2_77, rel-2_78, rel-2_79, rel-2_80, rel-2_81
Changes since 1.47: +74 -71 lines
Diff to previous 1.47
*** empty log message ***

Revision 1.47 - (view) (download) (annotate) - [select for diffs]
Tue Apr 15 14:21:04 2008 UTC (16 years ago) by root
Branch: MAIN
CVS Tags: rel-2_5, rel-2_52, rel-2_53, rel-2_54, rel-2_55, rel-2_56, rel-2_6, rel-2_61, rel-2_7
Changes since 1.46: +3 -4 lines
Diff to previous 1.46
*** empty log message ***

Revision 1.46 - (view) (download) (annotate) - [select for diffs]
Wed Nov 14 08:09:46 2007 UTC (16 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_32, rel-2_4, rel-2_41, rel-2_42, rel-2_43
Changes since 1.45: +2 -5 lines
Diff to previous 1.45
switch from Event to EV

Revision 1.45 - (view) (download) (annotate) - [select for diffs]
Thu Oct 11 00:34:31 2007 UTC (16 years, 7 months ago) by root
Branch: MAIN
CVS Tags: rel-2_3
Changes since 1.44: +10 -4 lines
Diff to previous 1.44
- rewrite follow to use a coroutine and make it generally safer.
- the map scheduler, under duress, tried to swap out maps fast, but when
  a sync job was entered it also entered and andless loop causing a freeze.
  hack around this temporairly by always sleeping 50ms.

Revision 1.44 - (view) (download) (annotate) - [select for diffs]
Mon Oct 1 00:55:51 2007 UTC (16 years, 7 months ago) by root
Branch: MAIN
Changes since 1.43: +2 -1 lines
Diff to previous 1.43
further adjust map scheduler coroutine to be as high as the main ticker

Revision 1.43 - (view) (download) (annotate) - [select for diffs]
Wed Sep 19 21:57:26 2007 UTC (16 years, 7 months ago) by root
Branch: MAIN
Changes since 1.42: +1 -1 lines
Diff to previous 1.42
name your coroutines

Revision 1.42 - (view) (download) (annotate) - [select for diffs]
Wed Sep 19 21:56:30 2007 UTC (16 years, 7 months ago) by root
Branch: MAIN
Changes since 1.41: +2 -0 lines
Diff to previous 1.41
name your coroutines

Revision 1.41 - (view) (download) (annotate) - [select for diffs]
Fri Aug 24 01:12:11 2007 UTC (16 years, 8 months ago) by root
Branch: MAIN
CVS Tags: rel-2_2
Changes since 1.40: +2 -1 lines
Diff to previous 1.40
keep maps in memory for at least 1.5 ticks.

background: rabies can cause the high watermark for load to be quickly exceeded, putting
the server in emergency swap mode. if we don't keep maps in memory for at least 1.5 ticks
we will then swap out (player-) visible maps, causing "blinking". by keeping them in memory
for at least a tick we avoid this problem entirely as all visible maps are never idle
longer than a tick.

Revision 1.40 - (view) (download) (annotate) - [select for diffs]
Sat Jul 28 14:32:21 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.39: +0 -3 lines
Diff to previous 1.39
problem solved

Revision 1.39 - (view) (download) (annotate) - [select for diffs]
Sat Jul 28 13:13:36 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.38: +4 -0 lines
Diff to previous 1.38
*** empty log message ***

Revision 1.38 - (view) (download) (annotate) - [select for diffs]
Mon Jul 23 17:53:55 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.37: +6 -7 lines
Diff to previous 1.37
much better, still label duplication

Revision 1.37 - (view) (download) (annotate) - [select for diffs]
Mon Jun 11 21:38:13 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.36: +1 -1 lines
Diff to previous 1.36
port micropather to c++...

Revision 1.36 - (view) (download) (annotate) - [select for diffs]
Sun Jun 10 04:24:50 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.35: +2 -4 lines
Diff to previous 1.35
some tweaking, preload random maps now, too

Revision 1.35 - (view) (download) (annotate) - [select for diffs]
Sun Jun 10 04:05:47 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.34: +31 -7 lines
Diff to previous 1.34
go through all per-player maps on startup and load those
that have a resettable base map. this is similar to going tghrough
all temp amps and loading them so the server can reset them.

this is quite a high overhead compared to e.g. putting reswettable
per-player maps into the tmp directory, too, but we might want to iterate
over all players and their maps anyways at some point, to upgrade them to
new formats etc. or to gather global statistics.

Revision 1.34 - (view) (download) (annotate) - [select for diffs]
Fri May 11 07:59:59 2007 UTC (17 years ago) by root
Branch: MAIN
CVS Tags: rel-2_1
Changes since 1.33: +12 -9 lines
Diff to previous 1.33
- introduce a notion of cpu load average within the server
- use it to more gracefully increase swap intervals in the map-scheduler
- add clip and lerp utility functions.

Revision 1.33 - (view) (download) (annotate) - [select for diffs]
Wed Apr 18 17:32:06 2007 UTC (17 years ago) by root
Branch: MAIN
Changes since 1.32: +1 -1 lines
Diff to previous 1.32
meet our new pod fucntionality, certainly not finished :) let me also introduce the beginnings of a new help command

Revision 1.32 - (view) (download) (annotate) - [select for diffs]
Mon Apr 16 06:23:41 2007 UTC (17 years ago) by root
Branch: MAIN
Changes since 1.31: +3 -5 lines
Diff to previous 1.31
VERY EXPERIMENTAL

- change the way archetypes and treasurelists are being loaded:
  - referring to a nonexisting treasurelist will create an empty one
  - referring to a nonexisting archetype will create an empty one
  - archetypes/treasurelists will overwrite any existing object
    of the same name.

- net effect should be to allow reloading of archetypes and treasurelists
  at runtime at a later stage.

Revision 1.31 - (view) (download) (annotate) - [select for diffs]
Sat Feb 17 01:58:55 2007 UTC (17 years, 2 months ago) by root
Branch: MAIN
CVS Tags: rel-2_0
Changes since 1.30: +1 -2 lines
Diff to previous 1.30
*** empty log message ***

Revision 1.30 - (view) (download) (annotate) - [select for diffs]
Wed Feb 14 00:43:54 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.29: +3 -1 lines
Diff to previous 1.29
*** empty log message ***

Revision 1.29 - (view) (download) (annotate) - [select for diffs]
Mon Feb 12 01:33:41 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28
tuna

Revision 1.28 - (view) (download) (annotate) - [select for diffs]
Mon Jan 29 17:57:22 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.27: +0 -2 lines
Diff to previous 1.27
support maps with and without .map extension, rename to .map on save

Revision 1.27 - (view) (download) (annotate) - [select for diffs]
Fri Jan 26 20:59:57 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.26: +7 -7 lines
Diff to previous 1.26
- tame the map/map-world.ext a bit to avoid potential memleaks for now
- object refcounting was borked, fixed, again :)
- add cf::attacahble::mortals_size
- disable reset-after-load, this is unsafe due to locking issues, so don't do it
- make map-scheduler configurable
- improve emergency swap mode
- prepare_random_map must be a sync job for now :(
- do not keep object reference in enter_exit, the object might have been gone already.
- nuke cf::object::mortals.

Revision 1.26 - (view) (download) (annotate) - [select for diffs]
Tue Jan 23 01:17:08 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25
slightly optimise max actives limit swapout algorithm

Revision 1.25 - (view) (download) (annotate) - [select for diffs]
Tue Jan 23 01:05:17 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.24: +5 -3 lines
Diff to previous 1.24
- avoid negative event priorities like the plague. they are actually
  worse because they introduce random memory corruption and endless
  loops and worse, if worse exists.
- aggressively swap out maps when #actives exceeds threshold
- sweep and cede after server tick
- increase player command handling priorities, just in case.
- fix a bug in mortal checking, this was the reason for the
  enourmous memory leaks in map-world.ext
- mark c++-side watchers as non-reentrant

Revision 1.24 - (view) (download) (annotate) - [select for diffs]
Mon Jan 22 03:44:41 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.23: +3 -2 lines
Diff to previous 1.23
there is a weird bug in Event or perl or... add some wrokarounds

Revision 1.23 - (view) (download) (annotate) - [select for diffs]
Sat Jan 13 23:32:43 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.22: +1 -0 lines
Diff to previous 1.22
fixes, starting to look good again

Revision 1.22 - (view) (download) (annotate) - [select for diffs]
Sat Jan 13 23:06:13 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.21: +1 -1 lines
Diff to previous 1.21
WARNING: this release is BROKEN

- rewrote map handling. map types are now completely pluggable, maybe
  *too* pluggable, as everything is a plug-in now.
- mark mandatory extensions as such.
- handle overloaded attachable objects correctly.
- many minor changes.

Revision 1.21 - (view) (download) (annotate) - [select for diffs]
Wed Jan 10 01:16:52 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.20: +1 -31 lines
Diff to previous 1.20
aggressively prefetch tiled maps around the player
- prefetch maps on every tick
- prefetch maps and block the player when entering maps

Revision 1.20 - (view) (download) (annotate) - [select for diffs]
Tue Jan 9 21:32:42 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.19: +2 -3 lines
Diff to previous 1.19
- added $cf::WAIT_FOR_TICK*
- tuned map-scheduler and player-scheduler
- added $op->inv_recursive
- added objects_size/objects($index) and actives_size/actives($index)
  for access to the object and actives vector.
- more robust player loader
- removed _perl_data attribute support
- SIGINT/TERM/HUP are now safe as they are handled synchronously.
- replaced LOOK_OBJ by client_visible
- cleanups

Revision 1.19 - (view) (download) (annotate) - [select for diffs]
Mon Jan 8 14:11:05 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.18: +2 -2 lines
Diff to previous 1.18
quick and dirty emergency fix

Revision 1.18 - (view) (download) (annotate) - [select for diffs]
Fri Jan 5 21:51:41 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.17: +1 -0 lines
Diff to previous 1.17
improve the hack

Revision 1.17 - (view) (download) (annotate) - [select for diffs]
Fri Jan 5 20:04:02 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16
fix the bug: on_destroy is obviously not being called on pooled coroutines, aslo use more sensible names than 'coro'

Revision 1.16 - (view) (download) (annotate) - [select for diffs]
Fri Jan 5 19:12:01 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.15: +23 -3 lines
Diff to previous 1.15
emergency

Revision 1.15 - (view) (download) (annotate) - [select for diffs]
Fri Jan 5 17:07:17 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.14: +3 -2 lines
Diff to previous 1.14
use coros coropool

Revision 1.14 - (view) (download) (annotate) - [select for diffs]
Fri Jan 5 01:06:40 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.13: +1 -1 lines
Diff to previous 1.13
rename goto_map to goto

Revision 1.13 - (view) (download) (annotate) - [select for diffs]
Thu Jan 4 17:28:49 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.12: +1 -1 lines
Diff to previous 1.12
add some cede's strategically, tune

Revision 1.12 - (view) (download) (annotate) - [select for diffs]
Thu Jan 4 17:22:06 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.11: +20 -0 lines
Diff to previous 1.11
preload /tmp maps on reload

Revision 1.11 - (view) (download) (annotate) - [select for diffs]
Thu Jan 4 16:19:32 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.10: +9 -0 lines
Diff to previous 1.10
- word of recall activated the player indirectly
- implement maptile->xy_find and xy_load
- separate find and load, even on C level
- generate map_leave/enter and map_change events even for tiled map changes
  (experimental)
- implement mainloop freezeing by start/stop, not skipping ticks
- no map updates when player !active

Revision 1.10 - (view) (download) (annotate) - [select for diffs]
Thu Jan 4 01:35:55 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.9: +3 -3 lines
Diff to previous 1.9
tuning, and hopefully apply last access time more correctly

Revision 1.9 - (view) (download) (annotate) - [select for diffs]
Wed Jan 3 12:33:33 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.8: +5 -0 lines
Diff to previous 1.8
*** empty log message ***

Revision 1.8 - (view) (download) (annotate) - [select for diffs]
Wed Jan 3 03:04:12 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.7: +6 -2 lines
Diff to previous 1.7
make the map scheduelr more robust w.r.t. map resets while it is iterating over maps (perl bug workaround)

Revision 1.7 - (view) (download) (annotate) - [select for diffs]
Tue Jan 2 21:13:22 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.6: +5 -5 lines
Diff to previous 1.6
activate_recursive etc. was using op->above, not op->below, so was not recursive at all

Revision 1.6 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 17:50:26 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.5: +1 -2 lines
Diff to previous 1.5
move nimbus to /, simplifies upgrading

Revision 1.5 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 16:50:09 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.4: +1 -0 lines
Diff to previous 1.4
implemented reste command, maps command etc.

Revision 1.4 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 15:32:40 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.3: +3 -4 lines
Diff to previous 1.3
in my stupidity i broke the loader

Revision 1.3 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 13:31:47 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.2: +12 -14 lines
Diff to previous 1.2
this is close to working

Revision 1.2 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 12:28:46 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.1: +0 -1 lines
Diff to previous 1.1
set original flag so decay object doesn't go wild

Revision 1.1 - (view) (download) (annotate) - [select for diffs]
Mon Jan 1 11:21:54 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
- integrated most of the map/exit handling into cf.pm
  (it grows too large, should be split 'somehow', but thats not easy)
- moved the swap/reste scheduler into an extension
- imrpoved exit/sync logic

Convenience Links

Links to HEAD: (view) (download) (annotate)

Compare Revisions

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a