comparison packages/kernel/current/ChangeLog @ 124:0ec04793409a ecos-sw-2000-09-11

Merge from eCos master repository on 2000-09-11-03:00:13-BST
author jlarmour
date Mon, 11 Sep 2000 02:42:46 +0000
parents 6ed91473a1cd
children 518f42066aba
comparison
equal deleted inserted replaced
123:9b71e8e665a3 124:0ec04793409a
1 2000-09-08 Nick Garnett <nickg@cygnus.co.uk>
2
3 * include/sched.hxx:
4 * include/sched.inl:
5 Added Cyg_Scheduler::unlock_reschedule() function. This decrements
6 the scheduler lock by one but also permits the current thread to
7 be rescheduled if it ready to sleep, or there is a higher priority
8 thread ready to run. This is to support use of various
9 synchronization objects while the scheduler lock is claimed.
10
11 * src/sched/sched.cxx (unlock_inner): Modified precondition to
12 allow for functionality of unlock_reschedule().
13
14 * src/sched/mlqueue.cxx:
15 Now uses Cyg_SchedulerThreadQueue_Implementation for all runqueue
16 pointers. It was using Cyg_ThreadQueue_Implementation in some
17 places which meant we were trying to sort the run queues!
18 Changed yield() so it can be called with the scheduler lock
19 claimed.
20 Changed Cyg_Scheduler_Implementation::timeslice() to rotate the
21 queue itself rather than call yield(). The changes to yield() make
22 it unsafe to call here any more.
23
24 * include/mlqueue.hxx (class Cyg_SchedulerThreadQueue_Implementation):
25 Made enqueue() member public.
26
27 * include/mboxt2.inl:
28 * src/common/thread.cxx:
29 * src/sync/mutex.cxx:
30 * src/sync/cnt_sem2.cxx:
31 Removed assertions for zero scheduler lock and replaced some
32 invocations of Cyg_Scheduler::unlock() with
33 Cyg_Scheduler::unlock_reschedule() or Cyg_Scheduler::reschedule()
34 where appropriate.
35
36 * tests/klock.c:
37 * cdl/kernel.cdl:
38 Added klock.c to test functionality while scheduler lock is claimed.
39
1 2000-08-17 Hugo Tyson <hmt@cygnus.co.uk> 40 2000-08-17 Hugo Tyson <hmt@cygnus.co.uk>
2 41
3 * src/sched/sched.cxx (unlock_inner): Move an assert to some place 42 * src/sched/sched.cxx (unlock_inner): Move an assert to some place
4 where it's true *all* the time! There was a narrow margin where a 43 where it's true *all* the time! There was a narrow margin where a
5 DSR could confuse unlock_inner() by reanimating the current thread 44 DSR could confuse unlock_inner() by reanimating the current thread