[#30995] [Bug #3523] win32 exception c0000029 on exit using fibers — B Kelly <redmine@...>

Bug #3523: win32 exception c0000029 on exit using fibers

19 messages 2010/07/02

[#31100] [rubysoc] Queue C-extension patch to come — Ricardo Panaggio <panaggio.ricardo@...>

Hello,

26 messages 2010/07/07
[#31148] Re: [rubysoc] Queue C-extension patch to come — Roger Pack <rogerdpack2@...> 2010/07/09

> As this it my first patch to Ruby, I don't know where to begin with.

[#31320] Re: [rubysoc] Queue C-extension patch to come — Ricardo Panaggio <panaggio.ricardo@...> 2010/07/16

Sorry for leaving this thread for so long. I've tried to finish the

[#31322] Re: [rubysoc] Queue C-extension patch to come — Aaron Patterson <aaron@...> 2010/07/16

On Sat, Jul 17, 2010 at 06:55:35AM +0900, Ricardo Panaggio wrote:

[#31324] Re: [rubysoc] Queue C-extension patch to come — Caleb Clausen <vikkous@...> 2010/07/17

NB: I am Ricardo's mentor for this project.

[#31331] Re: [rubysoc] Queue C-extension patch to come — Benoit Daloze <eregontp@...> 2010/07/17

On 17 July 2010 06:00, Caleb Clausen <vikkous@gmail.com> wrote:

[#31332] Re: [rubysoc] Queue C-extension patch to come — Caleb Clausen <vikkous@...> 2010/07/17

On 7/17/10, Benoit Daloze <eregontp@gmail.com> wrote:

[#31138] Why is there no standard way of creating a String from a char *? — Nikolai Weibull <now@...>

Hi!

14 messages 2010/07/08
[#31146] Re: Why is there no standard way of creating a String from a char *? — Urabe Shyouhei <shyouhei@...> 2010/07/09

(2010/07/09 7:04), Nikolai Weibull wrote:

[#31149] Re: Why is there no standard way of creating a String from a char *? — Nikolai Weibull <now@...> 2010/07/09

On Fri, Jul 9, 2010 at 06:20, Urabe Shyouhei <shyouhei@ruby-lang.org> wrote:

[#31150] Re: Why is there no standard way of creating a String from a char *? — Urabe Shyouhei <shyouhei@...> 2010/07/09

(2010/07/09 18:28), Nikolai Weibull wrote:

[#31217] [Bug #3562] regression in respond_to? — Aaron Patterson <redmine@...>

Bug #3562: regression in respond_to?

14 messages 2010/07/12

[#31269] [Bug #3566] memory leak when spawning+joining Threads in a loop — Eric Wong <redmine@...>

Bug #3566: memory leak when spawning+joining Threads in a loop

14 messages 2010/07/13

[#31399] [Backport #3595] Theres no encoding to differentiate a stream of Binary data from an 8-Bit ASCII string — Dreamcat Four <redmine@...>

Backport #3595: Theres no encoding to differentiate a stream of Binary data from an 8-Bit ASCII string

17 messages 2010/07/21

[#31459] [Bug #3607] [trunk/r28731] Gem.path has disappeared? — Ollivier Robert <redmine@...>

Bug #3607: [trunk/r28731] Gem.path has disappeared?

22 messages 2010/07/23

[#31519] [Bug #3622] Net::HTTP does not wait to send request body with Expect: 100-continue — Eric Hodel <redmine@...>

Bug #3622: Net::HTTP does not wait to send request body with Expect: 100-continue

9 messages 2010/07/28

[ruby-core:31357] Re: [Bug #3587] windows: unable to sleep < 0.015s

From: James Tucker <jftucker@...>
Date: 2010-07-19 16:31:12 UTC
List: ruby-core #31357
On 19 Jul 2010, at 16:19, KOSAKI Motohiro wrote:

> Hi
> 
> 2010/7/19 Roger Pack <redmine@ruby-lang.org>:
>> Bug #3587: windows: unable to sleep < 0.015s
>> http://redmine.ruby-lang.org/issues/show/3587
>> 
>> Author: Roger Pack
>> Status: Open, Priority: Normal
>> ruby -v: ruby 1.9.3dev (2010-07-19 trunk 28684) [i386-mingw32]
>> 
>>>> sleep 0.0001; Hitimes::Interval.measure { 2.times { sleep 0.000001}}
>> => 0.03124279761813303
>> 
>> (it's always 0.03s)
>> This surprised me a bit, since it differed from Linux behavior.
>> Thanks!
> 
> Typically, windows has 1/64sec (15.625ms) tick resolution. but linux has
> 1/1000sec tick resolution. So, I don't surprised this so much.
> 
> Do you have any improvement idea?

I am told there is a better way to do this (iirc, some media api), but, this is aged code I have for it:

#include "stdafx.h"
#include <Windows.h>
typedef LONG NTSTATUS; 
typedef NTSTATUS (__stdcall *NSTR)(ULONG, BOOLEAN, PULONG); 
#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) 
BOOL NtSetTimerResolution 
( 
        IN ULONG RequestedResolution, 
        IN BOOLEAN Set, 
        OUT PULONG ActualResolution 
);

int _tmain(int argc, _TCHAR* argv[])
{
	HMODULE hNtDll = ::LoadLibrary(_T("ntdll.dll")); 
	BOOL fRetVal = FALSE; 
	ULONG RequestedResolution = 10000, ActualResolution = 0; 
	BOOL Set = true; 
	if (hNtDll) 
	{ 
	  NSTR pNSTR = (NSTR)::GetProcAddress(hNtDll, "NtSetTimerResolution"); 
	  if (pNSTR) 
	  { 
		NTSTATUS nts = (*pNSTR)(RequestedResolution, Set, &ActualResolution); 
		if (STATUS_SUCCESS == nts) 
		  while (true)
			Sleep(100000);
		else
		  return 1;  
	  } 
	}
}

If the API is restricted by timer resolution, this code running as an application on the system should open that up to 1ms, other methods for doing this include running flash or opening media player.

I believe there are ways to do better, but I had another purpose for this code running as a service.

Roger - if this helps, I can provide a patch to hitimes, let me know.


In This Thread