File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- import type { VatOneResolution } from '@agoric/swingset-liveslots' ;
21import type { CapData } from '@endo/marshal' ;
32import { makePromiseKit } from '@endo/promise-kit' ;
43
54import { processGCActionSet } from './garbage-collection/garbage-collection.ts' ;
65import { kser } from './liveslots/kernel-marshal.ts' ;
76import type { KernelStore } from './store/index.ts' ;
8- import { insistKRef } from './types.ts' ;
97import type {
108 CrankResult ,
119 EndpointId ,
1210 KRef ,
1311 KernelMessage ,
12+ KernelOneResolution ,
1413 RunQueueItem ,
1514 RunQueueItemNotify ,
1615 RunQueueItemSend ,
@@ -323,14 +322,11 @@ export class KernelQueue {
323322 */
324323 resolvePromises (
325324 endpointId : EndpointId | 'kernel' | undefined ,
326- resolutions : VatOneResolution [ ] ,
325+ resolutions : KernelOneResolution [ ] ,
327326 immediate = true ,
328327 ) : void {
329328 for ( const resolution of resolutions ) {
330- const [ kpidRaw , rejected , dataRaw ] = resolution ;
331- insistKRef ( kpidRaw ) ;
332- const kpid = kpidRaw ;
333- const data = dataRaw as CapData < KRef > ;
329+ const [ kpid , rejected , data ] = resolution ;
334330
335331 this . #kernelStore. incrementRefCount ( kpid , 'resolve|kpid' ) ;
336332 for ( const slot of data . slots || [ ] ) {
Original file line number Diff line number Diff line change @@ -153,9 +153,6 @@ export class KernelServiceManager {
153153 const { methargs, result } = message ;
154154 const [ method , args ] = kunser ( methargs ) as [ string , unknown [ ] ] ;
155155 assert . typeof ( method , 'string' ) ;
156- if ( result ) {
157- assert . typeof ( result , 'string' ) ;
158- }
159156 assert ( Array . isArray ( args ) ) ;
160157
161158 // Use E() so this works for both local objects and remote presences
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ import type {
1616 KRef ,
1717 EndpointHandle ,
1818 EndpointMessage ,
19+ KernelOneResolution ,
1920 CrankResult ,
2021} from '../../types.ts' ;
2122import { insistKRef , insistERef } from '../../types.ts' ;
@@ -752,7 +753,7 @@ export class RemoteHandle implements EndpointHandle {
752753 }
753754 case 'notify' : {
754755 const [ , resolutions ] = params ;
755- const kResolutions : VatOneResolution [ ] = resolutions . map (
756+ const kResolutions : KernelOneResolution [ ] = resolutions . map (
756757 ( resolution ) => {
757758 const [ rpid , rejected , data ] = resolution ;
758759 insistERef ( rpid ) ;
Original file line number Diff line number Diff line change @@ -159,6 +159,12 @@ export const VatOneResolutionStruct = tuple([
159159 CapDataStruct ,
160160] ) ;
161161
162+ /**
163+ * A single kernel-space promise resolution: [promiseKRef, rejected, data].
164+ * Kernel-space counterpart of Agoric's `VatOneResolution`.
165+ */
166+ export type KernelOneResolution = [ KRef , boolean , CapData < KRef > ] ;
167+
162168// Kernel-space message: refs are KRefs
163169export const KernelCapDataStruct = object ( {
164170 body : string ( ) ,
Original file line number Diff line number Diff line change 11import type {
22 SwingSetCapData ,
3- VatOneResolution ,
43 VatSyscallObject ,
54 VatSyscallResult ,
65} from '@agoric/swingset-liveslots' ;
@@ -14,7 +13,12 @@ import {
1413import type { KernelQueue } from '../KernelQueue.ts' ;
1514import { makeError } from '../liveslots/kernel-marshal.ts' ;
1615import type { KernelStore } from '../store/index.ts' ;
17- import type { KernelMessage , VatId , KRef } from '../types.ts' ;
16+ import type {
17+ KernelMessage ,
18+ KernelOneResolution ,
19+ VatId ,
20+ KRef ,
21+ } from '../types.ts' ;
1822
1923type VatSyscallProps = {
2024 vatId : VatId ;
@@ -91,7 +95,7 @@ export class VatSyscall {
9195 *
9296 * @param resolutions - One or more promise resolutions.
9397 */
94- #handleSyscallResolve( resolutions : VatOneResolution [ ] ) : void {
98+ #handleSyscallResolve( resolutions : KernelOneResolution [ ] ) : void {
9599 const immediate = ! this . #kernelStore. isInCrank ( ) ;
96100 this . #kernelQueue. resolvePromises ( this . vatId , resolutions , immediate ) ;
97101 }
@@ -193,7 +197,7 @@ export class VatSyscall {
193197 this . #logger?. log (
194198 `@@@@ ${ vatId } syscall resolve ${ JSON . stringify ( resolutions ) } ` ,
195199 ) ;
196- this . #handleSyscallResolve( resolutions as VatOneResolution [ ] ) ;
200+ this . #handleSyscallResolve( resolutions as KernelOneResolution [ ] ) ;
197201 break ;
198202 }
199203 case 'exit' : {
You can’t perform that action at this time.
0 commit comments