* delay until problem in Windows
@ 2008-04-05 22:51 george.priv
2008-04-06 21:04 ` Jacob Sparre Andersen
2008-04-07 3:10 ` george.priv
0 siblings, 2 replies; 9+ messages in thread
From: george.priv @ 2008-04-05 22:51 UTC (permalink / raw)
Simplified code:
task body Some_task is
Time_For_Next_Frame : time;
procedure Fetch_Frame is
-- Here is where Time_For_Next_Frame is calculated
begin
Send_Frame;
Time_For_Next_Frame := Clock + Desired_Delta_T;
end Fetch_Frame;
begin
loop
select
...
or
delay until Time_For_Next_Frame;
Fetch_Frame;
end loop;
end Some_Task;
Symptoms:
After over 24+ hour operations it seems that delay gives no delay no
matter what value there is on Windows system . On Linux all is fine.
If I replace delay statement with
delay Desired_Delta_T;
all seemed fine. Does anyone knows of that limitation?
George.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-05 22:51 delay until problem in Windows george.priv
@ 2008-04-06 21:04 ` Jacob Sparre Andersen
2008-04-07 3:32 ` george.priv
2008-04-07 3:10 ` george.priv
1 sibling, 1 reply; 9+ messages in thread
From: Jacob Sparre Andersen @ 2008-04-06 21:04 UTC (permalink / raw)
george.priv@gmail.com writes:
> loop
>
> select
> ...
> or
> delay until Time_For_Next_Frame;
>
> Fetch_Frame;
>
> end loop;
> After over 24+ hour operations it seems that delay gives no delay no
> matter what value there is on Windows system
You might want to report this to your compiler vendor. It definitely
sounds like an error in the compiler/run-time system to me.
Greetings,
Jacob
--
�And what about homo sapiens?
Yes, we think that would be a very good idea ...� -- not Gandhi
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-05 22:51 delay until problem in Windows george.priv
2008-04-06 21:04 ` Jacob Sparre Andersen
@ 2008-04-07 3:10 ` george.priv
2008-04-07 7:25 ` Dmitry A. Kazakov
1 sibling, 1 reply; 9+ messages in thread
From: george.priv @ 2008-04-07 3:10 UTC (permalink / raw)
On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
Little update on the issue. The following program was created to
reproduce the problem:
with Ada.Calendar;
use Ada.Calendar;
with Ada.Text_IO;
use Ada.Text_IO;
with Ada.Calendar.Formatting;
use Ada.Calendar.Formatting;
procedure Delay_Test is
Start_Time : Time := Clock;
Time_Failed : Time := Start_Time; -- Time of first failure
encountered
task Delay_Test_Tsk is
entry Term;
end Delay_Test_Tsk;
task body Delay_Test_Tsk is
DT : constant Duration := 10.0; -- Desired
Delta T
Time_For_Next : Time := Clock + DT; -- Next cycle
Last : Time := Clock; -- Last cycle
clocked
Fail_Count : Natural := 0;
begin
while Fail_Count < 5 loop
select
accept Term;
exit;
or
delay until Time_For_Next;
declare
Actual_Delta : Duration := Clock - Last;
begin
Last := Clock;
Time_For_Next := Last + DT;
Put_Line("Actual Delay: " &
Duration'Image(Actual_Delta)
& ", Running (h):"
& Duration'Image((Clock - Start_Time)/3600.0));
if Actual_Delta < DT then
if Fail_Count = 0 then
Time_Failed := Clock;
end if;
Fail_Count := Fail_Count + 1;
else
Fail_Count := 0;
end if;
end;
end select;
end loop;
Put_Line("Started at:" & Image(Start_Time));
if Time_Failed /= Start_Time then
Put_Line("Failed at :" & Image(Time_Failed));
Put_Line("Failed after :" & Duration'Image(Time_Failed -
Start_Time));
end if;
end Delay_Test_Tsk;
Line : String (1 .. 80);
Last : Natural;
begin
loop
Get_Line(Line, Last);
exit when Line(1) = 'q' or Line(1) = 'Q';
end loop;
Delay_Test_Tsk.Term;
end Delay_Test;
Results vary from Windows flavors and I am not sure also that it is
not related to a particular hardware. So far it is fine on Vista
(after 22 hours) and XP (10 Hours). It failed on Server 2003 after 12
hours see output:
Actual Delay: 10.000372615, Running (h): 11.836564300
Actual Delay: 10.000381345, Running (h): 11.839342185
Actual Delay: 10.000370677, Running (h): 11.842120066
Actual Delay: 10.000379534, Running (h): 11.844897949
Actual Delay: 10.000372998, Running (h): 11.847675831
Actual Delay: 10.000545537, Running (h): 11.850453761
Actual Delay: 7.984454967, Running (h): 11.852675966
Actual Delay: 7.984806621, Running (h): 11.854893969
Actual Delay: 7.984636928, Running (h): 11.857111924
Actual Delay: 7.984678819, Running (h): 11.859329891
Actual Delay: 7.984673656, Running (h): 11.861547856
Started at:2008-04-06 07:14:09
Failed at :2008-04-06 19:05:18
Failed after : 42669.633539129
If anyone would like to check their systems and let us know?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-06 21:04 ` Jacob Sparre Andersen
@ 2008-04-07 3:32 ` george.priv
0 siblings, 0 replies; 9+ messages in thread
From: george.priv @ 2008-04-07 3:32 UTC (permalink / raw)
On Apr 6, 5:04 pm, Jacob Sparre Andersen <spa...@nbi.dk> wrote:
> george.p...@gmail.com writes:
> > loop
>
> > select
> > ...
> > or
> > delay until Time_For_Next_Frame;
>
> > Fetch_Frame;
>
> > end loop;
> > After over 24+ hour operations it seems that delay gives no delay no
> > matter what value there is on Windows system
>
> You might want to report this to your compiler vendor. It definitely
> sounds like an error in the compiler/run-time system to me.
>
> Greetings,
>
> Jacob
> --
> »And what about homo sapiens?
> Yes, we think that would be a very good idea ...« -- not Gandhi
I will once have more results (see other post).
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-07 3:10 ` george.priv
@ 2008-04-07 7:25 ` Dmitry A. Kazakov
2008-04-07 14:43 ` george.priv
2008-04-09 14:56 ` george.priv
0 siblings, 2 replies; 9+ messages in thread
From: Dmitry A. Kazakov @ 2008-04-07 7:25 UTC (permalink / raw)
On Sun, 6 Apr 2008 20:10:38 -0700 (PDT), george.priv@gmail.com wrote:
> On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
[...]
> with Ada.Calendar;
> use Ada.Calendar;
I don't know the implementation of, but Ada.Calendar is a political time,
influenced by the time synchronization stuff. What happens if you replace
it by Ada.Real_Time?
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-07 7:25 ` Dmitry A. Kazakov
@ 2008-04-07 14:43 ` george.priv
2008-04-07 14:51 ` george.priv
2008-04-09 14:56 ` george.priv
1 sibling, 1 reply; 9+ messages in thread
From: george.priv @ 2008-04-07 14:43 UTC (permalink / raw)
On Apr 7, 3:25 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> On Sun, 6 Apr 2008 20:10:38 -0700 (PDT), george.p...@gmail.com wrote:
> > On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
>
> [...]
>
> > with Ada.Calendar;
> > use Ada.Calendar;
>
> I don't know the implementation of, but Ada.Calendar is a political time,
> influenced by the time synchronization stuff. What happens if you replace
> it by Ada.Real_Time?
>
> --
> Regards,
> Dmitry A. Kazakovhttp://www.dmitry-kazakov.de
It may worth trying and I will set this up running at first
opportunity, but I think since it is a particular computer system/OS
combination it should eliminate "political" issue since all systems
are in one time zone and all synced from the same time server. So far
I saw that happening only on one system with Server 2003. Similar
hardware running Debian is doing fine. Other machines running Windows
XP and Vista (Notebook) went for 32 hours now and doing fine. All
workstations at my place are the same - that limits my sample pool. I
also do repeat run on failed machine to see if there will be
consistency in times.
Regards,
George Privalov
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-07 14:43 ` george.priv
@ 2008-04-07 14:51 ` george.priv
2008-04-08 11:02 ` Alex R. Mosteo
0 siblings, 1 reply; 9+ messages in thread
From: george.priv @ 2008-04-07 14:51 UTC (permalink / raw)
On Apr 7, 10:43 am, george.p...@gmail.com wrote:
> On Apr 7, 3:25 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
> wrote:
>
> > On Sun, 6 Apr 2008 20:10:38 -0700 (PDT), george.p...@gmail.com wrote:
> > > On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
>
> > [...]
>
> > > with Ada.Calendar;
> > > use Ada.Calendar;
>
> > I don't know the implementation of, but Ada.Calendar is a political time,
> > influenced by the time synchronization stuff. What happens if you replace
> > it by Ada.Real_Time?
>
> > --
> > Regards,
> > Dmitry A. Kazakovhttp://www.dmitry-kazakov.de
>
> It may worth trying and I will set this up running at first
> opportunity, but I think since it is a particular computer system/OS
> combination it should eliminate "political" issue since all systems
> are in one time zone and all synced from the same time server. So far
> I saw that happening only on one system with Server 2003. Similar
> hardware running Debian is doing fine. Other machines running Windows
> XP and Vista (Notebook) went for 32 hours now and doing fine. All
> workstations at my place are the same - that limits my sample pool. I
> also do repeat run on failed machine to see if there will be
> consistency in times.
>
> Regards,
>
> George Privalov
As soon as I posted that message, my XP workstation failed. But time
is now off forward 2 seconds after 30.5 hours. So drama is not over
yet.
Actual Delay: 10.000123715, Running (h): 30.430967673
Actual Delay: 10.000125595, Running (h): 30.433745487
Actual Delay: 10.000125257, Running (h): 30.436523299
Actual Delay: 10.000124860, Running (h): 30.439301112
Actual Delay: 10.000124743, Running (h): 30.442078925
Actual Delay: 12.000310334, Running (h): 30.445412345
Actual Delay: 12.000189837, Running (h): 30.448745732
Actual Delay: 12.000190605, Running (h): 30.452079118
Actual Delay: 12.000190805, Running (h): 30.455412505
Actual Delay: 12.000191032, Running (h): 30.458745892
Actual Delay: 12.000189268, Running (h): 30.462079278
Actual Delay: 12.000190642, Running (h): 30.465412665
Actual Delay: 12.000190666, Running (h): 30.468746051
Actual Delay: 12.000190224, Running (h): 30.472079438
Actual Delay: 12.000190730, Running (h): 30.475412825
George
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-07 14:51 ` george.priv
@ 2008-04-08 11:02 ` Alex R. Mosteo
0 siblings, 0 replies; 9+ messages in thread
From: Alex R. Mosteo @ 2008-04-08 11:02 UTC (permalink / raw)
george.priv@gmail.com wrote:
> On Apr 7, 10:43 am, george.p...@gmail.com wrote:
>> On Apr 7, 3:25 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
>> wrote:
>>
>> > On Sun, 6 Apr 2008 20:10:38 -0700 (PDT), george.p...@gmail.com wrote:
>> > > On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
>>
>> > [...]
>>
>> > > with Ada.Calendar;
>> > > use Ada.Calendar;
>>
>> > I don't know the implementation of, but Ada.Calendar is a political time,
>> > influenced by the time synchronization stuff. What happens if you replace
>> > it by Ada.Real_Time?
>>
>> > --
>> > Regards,
>> > Dmitry A. Kazakovhttp://www.dmitry-kazakov.de
>>
>> It may worth trying and I will set this up running at first
>> opportunity, but I think since it is a particular computer system/OS
>> combination it should eliminate "political" issue since all systems
>> are in one time zone and all synced from the same time server. So far
>> I saw that happening only on one system with Server 2003. Similar
>> hardware running Debian is doing fine. Other machines running Windows
>> XP and Vista (Notebook) went for 32 hours now and doing fine. All
>> workstations at my place are the same - that limits my sample pool. I
>> also do repeat run on failed machine to see if there will be
>> consistency in times.
>>
>> Regards,
>>
>> George Privalov
>
> As soon as I posted that message, my XP workstation failed. But time
> is now off forward 2 seconds after 30.5 hours. So drama is not over
> yet.
>
> Actual Delay: 10.000123715, Running (h): 30.430967673
> Actual Delay: 10.000125595, Running (h): 30.433745487
> Actual Delay: 10.000125257, Running (h): 30.436523299
> Actual Delay: 10.000124860, Running (h): 30.439301112
> Actual Delay: 10.000124743, Running (h): 30.442078925
> Actual Delay: 12.000310334, Running (h): 30.445412345
> Actual Delay: 12.000189837, Running (h): 30.448745732
> Actual Delay: 12.000190605, Running (h): 30.452079118
> Actual Delay: 12.000190805, Running (h): 30.455412505
> Actual Delay: 12.000191032, Running (h): 30.458745892
> Actual Delay: 12.000189268, Running (h): 30.462079278
> Actual Delay: 12.000190642, Running (h): 30.465412665
> Actual Delay: 12.000190666, Running (h): 30.468746051
> Actual Delay: 12.000190224, Running (h): 30.472079438
> Actual Delay: 12.000190730, Running (h): 30.475412825
>
> George
I remember some delay-related bug in the windows version of 3.15p. In my code
it manifested as tasks blocking for unexpectedly long times (usually hours
instead of milliseconds). I thought it had been fixed long ago, and certainly
your symptoms are different.
However, in case it has any relation, here's one (it seems it's partial, google
lost track) thread dealing with it. There may be more, and there was a patch
somewhere.
http://groups.google.com/group/comp.lang.ada/browse_frm/thread/5e062f5bcdb88fd8/94576cccaf04d9de?tvc=1&q=mosteo+bug#94576cccaf04d9de
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: delay until problem in Windows
2008-04-07 7:25 ` Dmitry A. Kazakov
2008-04-07 14:43 ` george.priv
@ 2008-04-09 14:56 ` george.priv
1 sibling, 0 replies; 9+ messages in thread
From: george.priv @ 2008-04-09 14:56 UTC (permalink / raw)
On Apr 7, 3:25 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:
> On Sun, 6 Apr 2008 20:10:38 -0700 (PDT), george.p...@gmail.com wrote:
> > On Apr 5, 6:51 pm, george.p...@gmail.com wrote:
>
> [...]
>
> > with Ada.Calendar;
> > use Ada.Calendar;
>
> I don't know the implementation of, but Ada.Calendar is a political time,
> influenced by the time synchronization stuff. What happens if you replace
> it by Ada.Real_Time?
>
> --
> Regards,
> Dmitry A. Kazakovhttp://www.dmitry-kazakov.de
You were right: so far the Real_Time version is running for 48 hours
without failing. So that may be a workaround.
with Ada.Real_Time;
use Ada.Real_Time;
with Ada.Text_IO;
use Ada.Text_IO;
--with Ada.RealFormatting;
with Ada.Calendar.Formatting;
procedure Delay_RT is
Start_Time : Time := Clock;
Time_Failed : Time := Start_Time;
ST : Ada.Calendar.Time := Ada.Calendar.Clock;
FT : Ada.Calendar.Time := ST;
task Delay_Test_Tsk is
entry Term;
end Delay_Test_Tsk;
task body Delay_Test_Tsk is
DT : constant Time_Span := Seconds (10); -- Desired
Delta T
Time_For_Next : Time := Clock + DT; -- Next
cycle
Last : Time := Clock; -- Last
cycle clocked
Fail_Count : Natural := 0;
begin
while Fail_Count < 5 loop
select
accept Term;
exit;
or
delay until Time_For_Next;
declare
Actual_Delta : Time_Span := Clock - Last;
begin
Last := Clock;
Time_For_Next := Last + DT;
Put_Line("Actual Delay: " & Duration'Image(To_Duration(
Actual_Delta))
& ", Running (h):"
& Duration'Image(To_Duration(Clock - Start_Time)/
3600.0));
if Actual_Delta < DT or Actual_Delta > (DT +
Seconds(1)) then
if Fail_Count = 0 then
Time_Failed := Clock;
FT := Ada.Calendar.Clock;
end if;
Fail_Count := Fail_Count + 1;
else
Fail_Count := 0;
end if;
end;
end select;
end loop;
Put_Line("Started at:" & Ada.Calendar.Formatting.Image(ST));
if Time_Failed /= Start_Time then
Put_Line("Failed at :" & Ada.Calendar.Formatting.Image(FT));
Put_Line("Failed after :" & Duration'Image(To_Duration(
Time_Failed -
Start_Time)));
end if;
end Delay_Test_Tsk;
Line : String (1 .. 80);
Last : Natural;
begin
loop
Get_Line(Line, Last);
exit when Line(1) = 'q' or Line(1) = 'Q';
end loop;
Delay_Test_Tsk.Term;
end Delay_RT;
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-04-09 14:56 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-05 22:51 delay until problem in Windows george.priv
2008-04-06 21:04 ` Jacob Sparre Andersen
2008-04-07 3:32 ` george.priv
2008-04-07 3:10 ` george.priv
2008-04-07 7:25 ` Dmitry A. Kazakov
2008-04-07 14:43 ` george.priv
2008-04-07 14:51 ` george.priv
2008-04-08 11:02 ` Alex R. Mosteo
2008-04-09 14:56 ` george.priv
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox