dmRuby 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df7bbe9ba9ae298aa10993fe78dc0e83aa9b7ff034e409ebf2918e473f262984
4
- data.tar.gz: f9ad6edda9cd642e644fe2b693d96d37bdd9d404bc165b5323bb79dac76445d3
3
+ metadata.gz: e8c05316c01f698c01a72a6e34143fa4925791a8ae69c4d659a18517015563e6
4
+ data.tar.gz: c5f91e09c595419b61c7fc8a96591ed60eff9123bf05e534c766519e660131bf
5
5
  SHA512:
6
- metadata.gz: 38995468639e295e0a67de33e65385385e6b16228701105f2042334de3521b10c6726a2797650218669f8d41e5fa8a175d2e9bf79a37ced21b689150eb2d4681
7
- data.tar.gz: 8996dc2f413072f77f2279535dc294a55b2395a9e07d849f952012dd25ad18f2c59cb95cc540bd94e296e8d877b9c5c8d31aab668866a0b6a0258abe673f34c7
6
+ metadata.gz: 9278bbce6c8b9b43a0beb22588a054d7fc878e43ee74e7ea6ca398bf87be98b4709304e55696fe27ad05d125351e9e082e9afa223df0babc31193eb6cd794ce0
7
+ data.tar.gz: 2c81e3dea4af0e9d678c6c34da7df917c60e82baf1d774582e15e02ed110ee1a2b22850214cf6aa0bcdbe3fea9c32eb8c1197def108d95221d508f599287ddb6
data/dmRuby-1.0.0.gem ADDED
Binary file
data/ext/client.c CHANGED
@@ -441,6 +441,25 @@ static VALUE rb_dm_client_encoding(VALUE self) {
441
441
  return wrapper->encoding;
442
442
  }
443
443
 
444
+ static void *nogvl_ping(void *ptr) {
445
+ dhcon client = ptr;
446
+ sdint4 is_dead = 1;
447
+
448
+ dpi_get_con_attr(client, DSQL_ATTR_CONNECTION_DEAD, &is_dead, sizeof(sdint4), NULL);
449
+
450
+ return (void *)( is_dead == 0 ? Qtrue : Qfalse);
451
+ }
452
+
453
+ static VALUE rb_dm_client_ping(VALUE self) {
454
+ GET_CLIENT(self);
455
+
456
+ if (!CONNECTED(wrapper)) {
457
+ return Qfalse;
458
+ } else {
459
+ return (VALUE)rb_thread_call_without_gvl(nogvl_ping, wrapper->client, RUBY_UBF_IO, 0);
460
+ }
461
+ }
462
+
444
463
  static VALUE set_charset_name(VALUE self, VALUE value) {
445
464
  int code;
446
465
  DPIRETURN rt;
@@ -490,6 +509,7 @@ void init_dm_client() {
490
509
  rb_define_method(cdmClient, "affected_rows", rb_dm_client_affected_rows, 0);
491
510
  rb_define_method(cdmClient, "prepare", rb_dm_client_prepare_statement, 1);
492
511
  rb_define_method(cdmClient, "encoding", rb_dm_client_encoding, 0);
512
+ rb_define_method(cdmClient, "ping", rb_dm_client_ping, 0);
493
513
 
494
514
  rb_define_private_method(cdmClient, "charset_name=", set_charset_name, 1);
495
515
  rb_define_private_method(cdmClient, "connect", rb_dm_connect, 3);
data/lib/dm/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dm
4
- VERSION = "1.0.0"
4
+ VERSION = "1.0.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dmRuby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sunbiao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-08-06 00:00:00.000000000 Z
11
+ date: 2025-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal
@@ -39,6 +39,7 @@ files:
39
39
  - "./README.md"
40
40
  - "./Rakefile"
41
41
  - "./dm.gemspec"
42
+ - "./dmRuby-1.0.0.gem"
42
43
  - ext/client.c
43
44
  - ext/client.h
44
45
  - ext/dm_enc_name_to_ruby.h