2
0
mirror of https://github.com/esiur/esiur-js.git synced 2025-05-06 04:22:58 +00:00

unnecessary deattach

This commit is contained in:
Ahmed Zamil 2024-07-09 19:21:05 +03:00
parent f3032e384f
commit 44216e05de
3 changed files with 27 additions and 12 deletions

View File

@ -6058,9 +6058,16 @@ var DistributedConnection = exports["default"] = /*#__PURE__*/function (_IStore)
key: "_sendDetachRequest", key: "_sendDetachRequest",
value: function _sendDetachRequest(instanceId) { value: function _sendDetachRequest(instanceId) {
try { try {
if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).containsKey(instanceId)) (0, _classPrivateFieldGet25["default"])(this, _attachedResources).remove(instanceId); var sendDetach = false;
if ((0, _classPrivateFieldGet25["default"])(this, _suspendedResources).containsKey(instanceId)) (0, _classPrivateFieldGet25["default"])(this, _suspendedResources).remove(instanceId); if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).containsKey(instanceId)) {
return _classPrivateMethodGet(this, _sendRequest, _sendRequest2).call(this, _IIPPacketAction["default"].DetachResource).addUint32(instanceId).done(); (0, _classPrivateFieldGet25["default"])(this, _attachedResources).remove(instanceId);
sendDetach = true;
}
if ((0, _classPrivateFieldGet25["default"])(this, _suspendedResources).containsKey(instanceId)) {
(0, _classPrivateFieldGet25["default"])(this, _suspendedResources).remove(instanceId);
sendDetach = true;
}
if (sendDetach) return _classPrivateMethodGet(this, _sendRequest, _sendRequest2).call(this, _IIPPacketAction["default"].DetachResource).addUint32(instanceId).done();
} catch (ex) { } catch (ex) {
return null; return null;
} }
@ -6134,8 +6141,9 @@ var DistributedConnection = exports["default"] = /*#__PURE__*/function (_IStore)
value: function IIPEventResourceDestroyed(resourceId) { value: function IIPEventResourceDestroyed(resourceId) {
if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).contains(resourceId)) { if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).contains(resourceId)) {
var r = (0, _classPrivateFieldGet25["default"])(this, _attachedResources).get(resourceId).deref(); var r = (0, _classPrivateFieldGet25["default"])(this, _attachedResources).get(resourceId).deref();
r === null || r === void 0 || r.destroy(); // remove from attached to avoid sending unnecessary deattach request when destroy() is called
(0, _classPrivateFieldGet25["default"])(this, _attachedResources).remove(resourceId); (0, _classPrivateFieldGet25["default"])(this, _attachedResources).remove(resourceId);
r === null || r === void 0 || r.destroy();
} else if ((0, _classPrivateFieldGet25["default"])(this, _neededResources).contains(resourceId)) { } else if ((0, _classPrivateFieldGet25["default"])(this, _neededResources).contains(resourceId)) {
// @TODO: handle this mess // @TODO: handle this mess
(0, _classPrivateFieldGet25["default"])(this, _neededResources).remove(resourceId); (0, _classPrivateFieldGet25["default"])(this, _neededResources).remove(resourceId);

View File

@ -1,6 +1,6 @@
{ {
"name": "esiur", "name": "esiur",
"version": "2.3.0", "version": "2.3.1",
"description": "Distributed Object Framework", "description": "Distributed Object Framework",
"main": "esiur.js", "main": "esiur.js",
"type": "module", "type": "module",

View File

@ -1693,15 +1693,22 @@ export default class DistributedConnection extends IStore {
{ {
try try
{ {
if (this.#attachedResources.containsKey(instanceId)) let sendDetach = false;
if (this.#attachedResources.containsKey(instanceId)){
this.#attachedResources.remove(instanceId); this.#attachedResources.remove(instanceId);
sendDetach = true;
}
if (this.#suspendedResources.containsKey(instanceId)) if (this.#suspendedResources.containsKey(instanceId)){
this.#suspendedResources.remove(instanceId); this.#suspendedResources.remove(instanceId);
sendDetach = true;
}
return this.#sendRequest(IIPPacketAction.DetachResource) if (sendDetach)
.addUint32(instanceId) return this.#sendRequest(IIPPacketAction.DetachResource)
.done(); .addUint32(instanceId)
.done();
} }
catch(ex) catch(ex)
{ {
@ -1832,9 +1839,9 @@ export default class DistributedConnection extends IStore {
if (this.#attachedResources.contains(resourceId)) if (this.#attachedResources.contains(resourceId))
{ {
let r = this.#attachedResources.get(resourceId).deref(); let r = this.#attachedResources.get(resourceId).deref();
r?.destroy(); // remove from attached to avoid sending unnecessary deattach request when destroy() is called
this.#attachedResources.remove(resourceId); this.#attachedResources.remove(resourceId);
r?.destroy();
} }
else if (this.#neededResources.contains(resourceId)) else if (this.#neededResources.contains(resourceId))
{ {