Thread.Sleep e horário do sistema

[quote=vctlzac]Você diz este código ?
Este não executei … achei que se rodasse o outro poderia descartar este.
O que esse código faz ?[/quote]
Esse mesmo. Acho interessante executá-lo também pois é uma pequena adaptação (na verdade, quase uma cópia) de como a JVM faz essa verificação (se há ou não suporte ao relógio monotônico).

[quote=marcobiscaro2112][quote=vctlzac]Você diz este código ?
Este não executei … achei que se rodasse o outro poderia descartar este.
O que esse código faz ?[/quote]
Esse mesmo. Acho interessante executá-lo também pois é uma pequena adaptação (na verdade, quase uma cópia) de como a JVM faz essa verificação (se há ou não suporte ao relógio monotônico).[/quote]

Entendi.

Segue os resultados:

Maquina 1:

java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-46.1.8.3.fc13-x86_64)
OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

uname -a
Linux 2.6.34.7-61.fc13.x86_64 #1 SMP Tue Oct 19 04:06:30 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

Teste 1:

#include <unistd.h>
#include <stdio.h>
#include <time.h>
#include <errno.h>
#include <string.h>

int
main ()
{
    printf ("%d\n", sysconf(_SC_MONOTONIC_CLOCK));

}

Resultado: 200809

Teste 2:

# include <stdio.h>
# include <dlfcn.h>
# include <time.h>

#ifndef CLOCK_MONOTONIC
#define CLOCK_MONOTONIC (1)
#endif

int main() {
  void* handle = dlopen("librt.so.1", RTLD_LAZY);
  if (handle == NULL) {
    handle = dlopen("librt.so", RTLD_LAZY);
  }

  if (handle) {
    int (*clock_getres_func)(clockid_t, struct timespec*) =
           (int(*)(clockid_t, struct timespec*))dlsym(handle, "clock_getres");
    int (*clock_gettime_func)(clockid_t, struct timespec*) =
           (int(*)(clockid_t, struct timespec*))dlsym(handle, "clock_gettime");
    if (clock_getres_func && clock_gettime_func) {
      struct timespec res;
      struct timespec tp;
      if (clock_getres_func (CLOCK_MONOTONIC, &res) == 0 &&
          clock_gettime_func(CLOCK_MONOTONIC, &tp)  == 0) {
        printf("OK!\n");
      } else {
        printf("Sem suporte...\n");
      }
    }
    dlclose(handle);
  }
}

Resultado: OK!

Máquina 2:

java -version
java version "1.6.0_18"
OpenJDK Runtime Environment (IcedTea6 1.8.3) (fedora-46.1.8.3.fc13-i386)
OpenJDK Server VM (build 14.0-b16, mixed mode)

uname -a
Linux 2.6.33.3-85.fc13.i686.PAE #1 SMP Thu May 6 18:27:11 UTC 2010 i686 i686 i386 GNU/Linux

Teste 1:

Resultado: 200809

Teste 2:

Resultado: OK!

Desculpe, o relógio monotônico só não é suportado no Linux se esse sysconf(_SC_MONOTONIC_CLOCK) retornar -1.

Então … o que será que está ocorrendo? Muito misterioso

[quote=entanglement]Desculpe, o relógio monotônico só não é suportado no Linux se esse sysconf(_SC_MONOTONIC_CLOCK) retornar -1.

Então … o que será que está ocorrendo? Muito misterioso
[/quote]
Muito mesmo… Mesmo resultado para ambos os testes. Em um funciona, em outro não. Será que Sherlock Holmes manja de C++ e de Linux para ajudar a resolver este caso? :slight_smile:

[quote=marcobiscaro2112][quote=entanglement]Desculpe, o relógio monotônico só não é suportado no Linux se esse sysconf(_SC_MONOTONIC_CLOCK) retornar -1.

Então … o que será que está ocorrendo? Muito misterioso
[/quote]
Muito mesmo… Mesmo resultado para ambos os testes. Em um funciona, em outro não. Será que Sherlock Holmes manja de C++ e de Linux para ajudar a resolver este caso? :)[/quote]

Realmente, inexplicável. Talvez chuck norris 8) .

Bom, vo tentar postar isso no forum da sun, sei la, as vezes os cara dão uma luz.

De qualquer forma agradeço a ajuda de todos, e qualquer nova é bem-vinda.

[quote=vctlzac]Realmente, inexplicável. Talvez chuck norris 8) .
[/quote]
Esse sim pode ajudar! Boa sorte com seu problema.