[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?
[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.