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:
parent
f3032e384f
commit
44216e05de
@ -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);
|
||||||
|
@ -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",
|
||||||
|
@ -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))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user