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",
value: function _sendDetachRequest(instanceId) {
try {
if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).containsKey(instanceId)) (0, _classPrivateFieldGet25["default"])(this, _attachedResources).remove(instanceId);
if ((0, _classPrivateFieldGet25["default"])(this, _suspendedResources).containsKey(instanceId)) (0, _classPrivateFieldGet25["default"])(this, _suspendedResources).remove(instanceId);
return _classPrivateMethodGet(this, _sendRequest, _sendRequest2).call(this, _IIPPacketAction["default"].DetachResource).addUint32(instanceId).done();
var sendDetach = false;
if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).containsKey(instanceId)) {
(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) {
return null;
}
@ -6134,8 +6141,9 @@ var DistributedConnection = exports["default"] = /*#__PURE__*/function (_IStore)
value: function IIPEventResourceDestroyed(resourceId) {
if ((0, _classPrivateFieldGet25["default"])(this, _attachedResources).contains(resourceId)) {
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);
r === null || r === void 0 || r.destroy();
} else if ((0, _classPrivateFieldGet25["default"])(this, _neededResources).contains(resourceId)) {
// @TODO: handle this mess
(0, _classPrivateFieldGet25["default"])(this, _neededResources).remove(resourceId);

View File

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

View File

@ -1693,12 +1693,19 @@ export default class DistributedConnection extends IStore {
{
try
{
if (this.#attachedResources.containsKey(instanceId))
let sendDetach = false;
if (this.#attachedResources.containsKey(instanceId)){
this.#attachedResources.remove(instanceId);
sendDetach = true;
}
if (this.#suspendedResources.containsKey(instanceId))
if (this.#suspendedResources.containsKey(instanceId)){
this.#suspendedResources.remove(instanceId);
sendDetach = true;
}
if (sendDetach)
return this.#sendRequest(IIPPacketAction.DetachResource)
.addUint32(instanceId)
.done();
@ -1832,9 +1839,9 @@ export default class DistributedConnection extends IStore {
if (this.#attachedResources.contains(resourceId))
{
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);
r?.destroy();
}
else if (this.#neededResources.contains(resourceId))
{