Sorting algorithms/Sleep sort: Difference between revisions

m
(→‎{{header|Perl}}: prepend pascal)
m (→‎{{header|Pascal}}: limit 4000)
Line 1,304:
 
=={{header|Pascal}}==
{{works with|Free Pascal}}
my limit under linux was 4000 threads nearly 2 GB.
<lang pascal>
program sleepsort;
Line 1,350 ⟶ 1,352:
sleep(40*cft_count+1);
fi := Finished-1;
//write(fi:5,cft_count:8,#13);
InterLockedDecrement(Finished);
SortIdx[fi]:= NativeUint(parameter);
Line 1,371 ⟶ 1,373:
begin
cft_ThreadHandle :=
BeginThread(@TestRunThd, Pointer(j), cft_ThreadID,16384 {stacksize} );
If cft_ThreadHandle = 0 then break;
end;
Line 1,384 ⟶ 1,386:
For j := 0 to UsedThreads-1 do
CloseThread(ThreadBlocks[j].cft_ThreadID);
 
//output of sleep-sorted data
For j := UsedThreads-1 downto 1 do
write(ThreadBlocks[SortIdx[j]].cft_count,',');
Line 1,410 ⟶ 1,414:
 
real 0m3,164s</pre>
 
=={{header|Perl}}==
Basically the C code.
Anonymous user