@@ -3,13 +3,11 @@ import * as varint from 'uint8-varint'
33import { parseProviderKey , readProviderTime , toProviderKey } from './utils.js'
44import type { AbortOptions , ComponentLogger , Logger , Metrics , PeerId } from '@libp2p/interface'
55import type { Datastore } from 'interface-datastore'
6- import type { Mortice } from 'mortice'
76import type { CID } from 'multiformats'
87
98export interface ProvidersInit {
109 logPrefix : string
1110 datastorePrefix : string
12- lock : Mortice
1311}
1412
1513export interface ProvidersComponents {
@@ -29,59 +27,39 @@ export class Providers {
2927 private readonly log : Logger
3028 private readonly datastore : Datastore
3129 private readonly datastorePrefix : string
32- private readonly lock : Mortice
3330
3431 constructor ( components : ProvidersComponents , init : ProvidersInit ) {
3532 this . log = components . logger . forComponent ( `${ init . logPrefix } :providers` )
3633 this . datastorePrefix = `${ init . datastorePrefix } /provider`
3734 this . datastore = components . datastore
38- this . lock = init . lock
3935 }
4036
4137 /**
4238 * Add a new provider for the given CID
4339 */
4440 async addProvider ( cid : CID , provider : PeerId , options ?: AbortOptions ) : Promise < void > {
45- const release = await this . lock . readLock ( options )
46-
47- try {
48- this . log . trace ( '%p provides %s' , provider , cid )
49- await this . writeProviderEntry ( cid , provider , options )
50- } finally {
51- release ( )
52- }
41+ this . log . trace ( '%p provides %s' , provider , cid )
42+ await this . writeProviderEntry ( cid , provider , options )
5343 }
5444
5545 /**
5646 * Remove a provider for the given CID
5747 */
5848 async removeProvider ( cid : CID , provider : PeerId , options ?: AbortOptions ) : Promise < void > {
59- const release = await this . lock . writeLock ( options )
60-
61- try {
62- const key = toProviderKey ( this . datastorePrefix , cid , provider )
63- this . log . trace ( '%p no longer provides %s' , provider , cid )
64- await this . datastore . delete ( key )
65- } finally {
66- release ( )
67- }
49+ const key = toProviderKey ( this . datastorePrefix , cid , provider )
50+ this . log . trace ( '%p no longer provides %s' , provider , cid )
51+ await this . datastore . delete ( key , options )
6852 }
6953
7054 /**
7155 * Get a list of providers for the given CID
7256 */
7357 async getProviders ( cid : CID , options ?: AbortOptions ) : Promise < PeerId [ ] > {
74- const release = await this . lock . readLock ( options )
75-
76- try {
77- this . log . trace ( 'get providers for %c' , cid )
78- const provs = await this . loadProviders ( cid , options )
79- this . log . trace ( 'got %d providers for %c' , provs . size , cid )
58+ this . log . trace ( 'get providers for %c' , cid )
59+ const provs = await this . loadProviders ( cid , options )
60+ this . log . trace ( 'got %d providers for %c' , provs . size , cid )
8061
81- return [ ...provs . keys ( ) ]
82- } finally {
83- release ( )
84- }
62+ return [ ...provs . keys ( ) ]
8563 }
8664
8765 /**
0 commit comments