Skip to content

Commit

Permalink
Expiration and badAction semaphore - Logical Consistency
Browse files Browse the repository at this point in the history
  • Loading branch information
REllEK-IO committed Oct 22, 2023
1 parent f7d4869 commit e9e65e2
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 9 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@phuire/strx",
"version": "0.0.43",
"version": "0.0.44",
"description": "Unified Turing Machine",
"main": "dist/index.js",
"module": "dist/index.mjs",
Expand Down
4 changes: 2 additions & 2 deletions src/concepts/axium/axium.mode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export const permissiveMode: Mode = (
if (isActionable(axiumState, action)) {
// Logical Determination: axiumSetBlockingModeType
if (action.semaphore[3] !== 4) {
if (action.semaphore[2] === axiumState.generation) {
if (action.semaphore[2] === axiumState.generation && action.expiration > Date.now()) {
let subject: Subject<Action>;
if (concepts[action.semaphore[0]].qualities[action.semaphore[1]].method) {
subject = concepts[action.semaphore[0]].qualities[action.semaphore[1]].subject as Subject<Action>;
Expand Down Expand Up @@ -66,7 +66,7 @@ export const blockingMode: Mode = (
) => {
const axiumState = concepts[0].state as AxiumState;
if (isActionable(axiumState, action)) {
if (action.semaphore[2] === axiumState.generation) {
if (action.semaphore[2] === axiumState.generation && action.expiration > Date.now()) {
const reduce = concepts[action.semaphore[0]].qualities[action.semaphore[1]].reducer;
const state = concepts[action.semaphore[0]].state;
concepts[action.semaphore[0]].state = reduce(state, action);
Expand Down
13 changes: 7 additions & 6 deletions src/model/axium.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,15 @@ import {
Subscriber,
catchError,
} from 'rxjs';
import { Action, createAction, createCacheSemaphores } from './action';
import { Action, createCacheSemaphores } from './action';
import { strategyBegin } from './actionStrategy';
import { Concept, Mode } from './concept';
import {
createAxiumConcept,
AxiumState,
initializationStrategy,
} from '../concepts/axium/axium.concept';
import { axiumBadActionType } from '../concepts/axium/qualities/badAction.quality';
import { axiumClose, axiumCloseType } from '../concepts/axium/qualities/close.quality';
import { axiumClose } from '../concepts/axium/qualities/close.quality';
import {
axiumAppendActionListToDialog,
} from '../concepts/axium/qualities/appendActionListToDialog.quality';
Expand All @@ -29,13 +28,14 @@ export const blockingMethodSubscription = (action$: Subject<Action>, action: Act
const appendToDialog = axiumAppendActionListToDialog({
actionList: action.strategy.actionList,
strategyTopic: action.strategy.topic,
strategyData: action.strategy.data
strategyData: action.strategy.data,
});
action$.next(appendToDialog);
action$.next(action);
} else if (
action.strategy &&
action.type !== axiumBadActionType
// Logical Determination: axiumBadType
action.semaphore[3] !== 1
) {
action$.next(action);
}
Expand All @@ -59,7 +59,8 @@ export const defaultMethodSubscription = (action$: Subject<Action>, action: Acti
}, 0);
} else if (
action.strategy &&
action.type !== axiumBadActionType
// Logical Determination: axiumBadType
action.semaphore[3] !== 1
) {
setTimeout(() => {
action$?.next(action);
Expand Down

0 comments on commit e9e65e2

Please sign in to comment.